前端播放视频流
前端播放視頻流
使用方案 ffmpeg + nginx + flv.js 使用web播放rtsp流。
完整方案: ffmpeg推流——>nginx-http-flv-module流服務器——>flv.js前端播放器
配置nginx
參考:
https://segmentfault.com/a/1190000023949105
https://blog.csdn.net/qq_39370934/article/details/112004923
https://blog.csdn.net/rushichunqiu/article/details/118858076
將nginx安裝上述鏈接進行配置。
$ sudo nginx -c /usr/local/nginx/conf/nginx.conf $ sudo nginx -s reloadffmpeg推流
拉取大華攝像頭rtsp流轉rtmp推送到服務器。注意必須使用aac編碼。
$ ffmpeg -rtsp_transport tcp -i "rtsp://admin:admin123@192.168.1.108:8554/cam/realmonitor?channel=1&subtype=1" -vcodec copy -acodec aac -f flv "rtmp://localhost:1935/myapp/video19"因為ffmpeg與nginx運行在同一臺服務器,所以這里選擇localhost作為推流地址。這時候,本機可以通過本機IP,使用VLC播放器進行,局域網可通過局域網IP進行播放。
另外,也可通過http地址播放flv流。
http://localhost/live?port=1935&app=myapp&stream=video19公網訪問
內網訪問成功以后,說明環境沒有問題了,接下來配置公網訪問。這里使用公網IP自己搭服務器來搞定。
由于我這里光纖進來,有兩級路由器,服務器是掛在第二級路由器上的,所以需要在兩個路由器上都配置端口映射。如下:
由于nginx設置的端口號是80,但是運營商對80進行封禁了。所以這里使用9000作為公網訪問http的端口,映射到nginx服務器的80端口上。另外rtmp的1935端口也必須映射出去。
接下來,在局域網外(公網環境)找臺電腦,使用VLC播放RTMP或者http-flv流,以下鏈接都可以正常播放。
rtmp://sault.top:1935/myapp/video19 http://sault.top:9000/live?port=1935&app=myapp&stream=video19使用flv.js也是能正常播放。
公網推流
$ ffmpeg -rtsp_transport tcp -i "rtsp://admin:admin123@192.168.1.108:8554/cam/realmonitor?channel=1&subtype=1" -vcodec copy -acodec aac -f flv "rtmp://sault.top:1935/myapp/video19"總結
- 上一篇: 常见的前端视频播放格式
- 下一篇: 最新全套Web前端视频教程