Hướng dẫn rtmp nodejs - rtmp nodejs

This topic has been deleted. Only users with topic management privileges can see it.

  • Nếu trên nền tảng web thì bạn có thể dùng webRTC để lấy dữ liệu của camera. => Sau đó cắt file theo khoảng 20/100s => Dữ liệu xuông sẽ là dạng buffer của JS. vì là đồng bộ với NodeJS về mặt dữ liệu ở backend. => Trên backend ở server socket.io bạn viết bạn dùng fs tạo một file write stream. => Sau đó cứ đè chồng buffer gửi liên tục từ client lên server. => Server bạn sẽ dụng proxy nginx RTMP để streaming nó đến các thiết bị khác. Note(Bạn phải tính tốc độ xử lí ghi file của server nữa. Nginx RTMP: https://github.com/arut/nginx-rtmp-module Example của sam sutton về lấy dữ liệu và lưu xuống. Ở đây bạn sẽ không lưu xuống mà sẽ dùng socket.io để push lên server. https://rawgit.com/Miguelao/demos/master/mediarecorder.html Example cuả mình về cái này. Lúc trước mình có nghiên cứu nó lâu rồi và viết thành công. Tuy nhiên bản github này là bản nháp của mình trước khi hoàn thiện. Nhưng vì bận quá mình ko update code đc https://github.com/cptrodgers/webRTC-Streaming
    => Sau đó cắt file theo khoảng 20/100s => Dữ liệu xuông sẽ là dạng buffer của JS. vì là đồng bộ với NodeJS về mặt dữ liệu ở backend.
    => Trên backend ở server socket.io bạn viết bạn dùng fs tạo một file write stream.
    => Sau đó cứ đè chồng buffer gửi liên tục từ client lên server.
    => Server bạn sẽ dụng proxy nginx RTMP để streaming nó đến các thiết bị khác.
    Note(Bạn phải tính tốc độ xử lí ghi file của server nữa.
    Nginx RTMP: https://github.com/arut/nginx-rtmp-module
    Example của sam sutton về lấy dữ liệu và lưu xuống. Ở đây bạn sẽ không lưu xuống mà sẽ dùng socket.io để push lên server.
    https://rawgit.com/Miguelao/demos/master/mediarecorder.html
    Example cuả mình về cái này. Lúc trước mình có nghiên cứu nó lâu rồi và viết thành công. Tuy nhiên bản github này là bản nháp của mình trước khi hoàn thiện. Nhưng vì bận quá mình ko update code đc

    Hướng dẫn rtmp nodejs - rtmp nodejs

    https://github.com/cptrodgers/webRTC-Streaming

  • À bạn phải sử dụng socket.io > 1.0 mới sp file data buffer nhé.

    Hướng dẫn rtmp nodejs - rtmp nodejs

  • Nếu trên điện thoại thì bạn cố gắng dùng chromium. Vì webRTC có hỗ trợ cho cái này. Tuy nhiên thì mình thấy tài liệu WebRTC cho IOS là rất cũ rồi. Và không chạy được. CÒn android thì được update khá đầy đủ (vào tháng 12 năm 2015). Hiện nay thì mình không biết. Nếu bạn có phương án cho android + ios thì chỉ mình với :D.

    Hướng dẫn rtmp nodejs - rtmp nodejs
    :D.



  • @Nguyen-Hien Đối với mobile bạn có thể lựa chọn phương án sử dụng hybrid app sử dụng cordova plugins hoặc code native.

    Tham khảo:

    • https://apirtc.com/apirtc-on-cordova/
    • https://webrtc.org/native-code/

  • Cám ơn a Vũ. Hồi đó làm chưa nghĩ đến hybrid app :D. Bây giờ nếu chọn nữa React Native và Ionic thì a sẽ chọn thằng nào để viết app. Do sắp tới e sẽ có dự định code một app về du lịch. Hiện tại đang phân vân giữa hai nền tảng này.
    Bây giờ nếu chọn nữa React Native và Ionic thì a sẽ chọn thằng nào để viết app. Do sắp tới e sẽ có dự định code một app về du lịch. Hiện tại đang phân vân giữa hai nền tảng này.

  • @Nguyen-Hien Mình thì thân thiện với Angular hơn nên hiện đang sử dụng Ionic. Nếu bạn quan tâm đến hiệu năng và native component thì nên chọn React Native

    Hướng dẫn rtmp nodejs - rtmp nodejs


  • Hi mọi người. Mình cũng đang làm vụ live stream này. Có đọc qua suggest của bạn @Nguyen Hien, tuy nhiên nếu sử dụng Socket.io + WebRTC thì clients chỉ khoảng 50 viewers là bị crash.
    Mình cũng đang làm vụ live stream này. Có đọc qua suggest của bạn @Nguyen Hien, tuy nhiên nếu sử dụng Socket.io + WebRTC thì clients chỉ khoảng 50 viewers là bị crash.

    Mình đang muốn làm với tầm > 5k Viewers thì nên sử dụng công nghệ nào? mình có research trên mạng nhưng chưa tìm ra đc giải pháp nào khả thi.

    Thanks all,


  • Chào các bạn,

    Mình đã làm với Live Stream từ IP Camera như sau:

    1. Dùng NGINX-based Media Streaming Server: https://github.com/arut/nginx-rtmp-module
    2. Dùng kết hợp với FFMPEG: https://ffmpeg.org/
    3. Rùi dùng Nodejs để control thao tác của Users, cũng như xử lý phần call ffmpeg vào rtmp của nginx để tạo ra stream với HLS có thể dùng được mọi thiết bị. Cách này là với 1 luồng stream từ IP Camera sẽ tạo ra 1 luồng stream HLS, Users sẽ load file HLS (m3u8). Nhược điểm: Có độ trễ tầm khoản 5-10s.
      Nhược điểm: Có độ trễ tầm khoản 5-10s.
    4. Client để load view HLS (m3u8) dùng: http://clappr.io/

    P.s: Mình đã triển khai cho công ty của mình với 20 IP Camera. Nếu dự án bạn lớn thì các bạn có thể tạo load balancing để chia tải.


  • @nqtoan86 Chào bạn.

    Hiện tại mình cũng đang chuẩn bị làm dự án live stream one-way dạy học trực tuyến: 1 giáo viên giảng dạy và phát video trực tuyến và các học viên có thể vào xem (giống kiểu live stream facebook).

    Mình chưa có kinh nghiệm trong vấn đề này. Mình có tìm hiểu thì có webrtc kết hợp với nodejs socket io nhưng có vẻ không ổn lắm.

    Bác có kinh nghiệm chia sẻ em với. Sử dụng công nghệ gì? Phía client phải xử lý những gì, phía server phải làm gì?

    Thank bạn nhiều!

  • VP9 VIỆT NAM CHIÊU MỘ SENIOR DEV LƯƠNG 1000$- 3000$. Công ty Cổ phần VP9 Việt Nam cần chiêu mộ nhân tài lập trình viên, siêu nhân code thành thạo 1 trong các ngôn ngữ: PHP, Android, Node Js, C, C++, Java. Lương tỉ lệ thuận theo năng lực 1000$-3000$. Làm việc tại 72 Trần Đăng Ninh, Cầu Giấy, Hà Nội. Làm việc trong môi trường thoải mái, cơ hội thăng tiến rõ ràng. Gửi CV trực tiếp: [email protected] Hoặc liên hệ hotline: 0919822986. Skype: vuminhhai99 Inbox trực tiếp để được giải đáp thắc mắc nhé!
    Công ty Cổ phần VP9 Việt Nam cần chiêu mộ nhân tài lập trình viên, siêu nhân code thành thạo 1 trong các ngôn ngữ: PHP, Android, Node Js, C, C++, Java.
    Lương tỉ lệ thuận theo năng lực 1000$-3000$. Làm việc tại 72 Trần Đăng Ninh, Cầu Giấy, Hà Nội.
    Làm việc trong môi trường thoải mái, cơ hội thăng tiến rõ ràng.
    Gửi CV trực tiếp: [email protected]
    Hoặc liên hệ hotline: 0919822986. Skype: vuminhhai99
    Inbox trực tiếp để được giải đáp thắc mắc nhé!

  • This post is deleted!