Hướng dẫn webrtc live streaming nodejs - webrtc phát trực tiếp nodejs
WebRTC là công nghệ giúp chúng ta xây dựng ứng dụng stream audio, video, chia sẻ file, desktop, ... thông qua kết nối peer to peer (kết nối trực tiếp giữa các client mà không cần truyền dữ liệu qua server trung gian). Loạt bài này sẽ giúp các bạn có thể tích hợp công nghệ WebRTC vào ứng dụng web của bạn. Show Bạn chuẩn bị trước các tài khoản các trang sau: http://heroku.com/ http://peerjs.com/ http://xirsys.com/ https://github.com/ Project khởi đầu: https://github.com/vanpho93/rtc-start-kit Project kết thúc: https://github.com/vanpho93/khoapham-rtc Các bạn có thể theo dõi project cuối mỗi video trong mục commit
OverviewChúng ta sẽ phát triển ứng dụng demo WebRTC bằng NodeJS. Nội dung chính
Các service cần cài đặt trước
Stream video từ webcamThêm một thẻ 6 và một thẻ 7 vào file 8 trong thư mục chính như sau:
Thêm đoạn code sau vào file 9 trong thư mục 0:
Giải thíchKhi 1 được gọi, trình duyệt sẽ yêu cầu quyền truy cập camera của người dùng. Nếu thành công, một 2 sẽ được trả về và được sử dụng như một thẻ 3 thông qua thuộc tính 4: Tham số 5 cho phép chỉ định cái mà media sẽ lấy (có thể là video hoặc audio)
Có thể sử dụng 6 cho các options khác như 7 chẳng hạn:
MediaTrackConstraints specification liêt kê tất cả 8. Nếu resolution yêu cầu không được hỗ trợ bởi camera hiện tại 9 sẽ từ chối với một lỗi 0 và người dùng sẽ không có quyền truy cập camera.Nếu 9 thành công, 2 từ webcam sẽ được cài đặt làm 3 của thẻ 6.
Như vậy chúng ta đã biết được cách:
Stream video với RTCPeerConnectionStream data với RTCDataChannelCài đặt một signaling service để trao đổi messages Kết hợp peer connection và signaling
Chụp ảnh và chia sẻ nó qua một kênh dữ liệu (data channel) Các service cần cài đặt trướcChrome 47 trở lên
Thêm thông tin về adapter.js File 8 trông như sau:
File 9 như sau: 0 Tạo một cuộc gọiMở file 8, click button 2 để get video từ webcam và click 3 to tạo một 4. Chúng ta sẽ thấy 2 video giống nhau. WebRTC sử dụng RTCPeerConnection API to cài đặt một connection to stream video giữa các WebRTC clients được biết như 5. Trong ví dụ này, 2 RTCPeerConnection object ở cùng 1 trang: pc1 và pc2Cài đặt một cuộc gọi giữa 2 WebRTC peers bao gồm 3 bước sau:
Tưởng tượng rằng Alice và Bob muốn sử dụng RTCPeerConnection để cài đặt một cuộc gọi video: Đầu tiên, Alice và Bob trao đổi các thông tin về network. 9 chính là quá trình tìm kiếm 0 và 1 sử dụng ICE framework.
1
2
3WebRTC peers cũng cần tìm và trao đổi thông tin local và remote audio và video media như resolution, dung lượng codec. Signaling trao đổi thông tin media configuration bởi trao đổi metadata được gọi là một 9 và một 0 sử dụng 1 format, gọi tắt là SDPAlice run phương thức 2 . Promise trả về một 3 (Alice's local session description): 4
5Như vậy chúng ta đã hiểu rõ các bước kết nối và thiết lập các kết nối peer trong WebRTC. Phần sau mình sẽ giới thiệu cách stream qua 9. |