基於node.js 的 websocket的移動端H5直播開發


 

這一篇介紹一下基於node.js 的 websocket的移動端H5直播開發,

下載文章底部的源碼,我是用vscode打開,

首先在第一個終端運行 npm run http-server 這個指令是運行http服務,手機端直接運行http://ip:8000/mpegts.html 即可看到推流過來的視頻

新起一個終端運行 npm run ws-server,服務啟動后,即可以通過ffmpeg進行推流。

推流過程如下:

推流視頻文件:

ffmpeg -re -i E:\2.mp4    -codec:v mpeg1video -s 640x1236 -b:v 3000k -r 30 -bf 0   -codec:a mp2 -ar 44100 -ac 1 -b:a 128k  -f mpegts    tcp://localhost:8081

推流攝像頭流:

ffmpeg -f dshow -i video="Integrated Camera" -codec:v mpeg1video -s 640x1236 -b:v 3000k -r 30 -bf 0 -f  mpegts tcp://localhost:8081

桌面流:

ffmpeg -f gdigrab -framerate 1 -offset_x 10 -offset_y 20 -video_size 640x480 -i desktop  -codec:v mpeg1video -s 640x1236 -b:v 3000k -r 30 -bf 0   -f mpegts  tcp://localhost:8081

這里8081 就是ws-Server接收推流的端口, 而8082 是websocket的端口,httpserver的網頁就是通過8082進行數據傳輸。

以上步驟完成,在手機端即可以看到低延時的視頻文件。

順便說一下mse:

源碼里也有對應的頁面播放mse視頻流,但是mse的移動端兼容性太差

fmpeg格式的ffmpeg推送如下:

攝像頭:

ffmpeg -f dshow -i video="Integrated Camera" -c:v libx264 -vb 448k -vsync 2 -pix_fmt yuv420p -profile:v
high -f mp4 -movflags frag_keyframe+default_base_moof -reset_timestamps 1 -frag_duration 70000
tcp://localhost:8081

桌面:

ffmpeg -f gdigrab -framerate 1 -offset_x 10 -offset_y 20 -video_size 640x480 -i desktop -c:v libx264 -vb
448k -vsync 2 -pix_fmt yuv420p -profile:v high -f mp4 -movflags frag_keyframe+default_base_moof -
reset_timestamps 1 -frag_duration 70000 tcp://localhost:8081

文件流:

ffmpeg.exe -re -i E:\2.mp4 -vcodec copy -acodec copy -pix_fmt yuv420p -f mp4 -movflags frag_keyframe
+default_base_moof -reset_timestamps 1 -frag_duration 70000 tcp://localhost:8081/

源碼下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM