NGINX+ffmpeg 实现 大华摄像头视屏转流RTSP转RTMP或M3U8
一、準備
1.環境:
windows
2.開發工具:
ffmpeg、nginx(代理服務器)nginx-rmtp-module(nginx服務器的流媒體插件)、vlc(兼容性播放器)
3.原理:
nginx通過rtmp模塊提供rtmp服務, ffmpeg推送一個rtmp流到nginx, 然后客戶端通過訪問nginx來收看實時視頻流。
二、啟動nginx服務器
1.Ctrl+R調命令框輸入cmd; //進入控制臺
2.cd /d E:\showwork\FFmpeg_nginx\nginx-1.7.11.3-Gryphon //進入nginx的目錄
3.nginx.exe -c conf\nginx-win-rtmp.conf //運行rtmp配置文件
注意:此時命令行會一直處于執行中,不用管也不要關閉
(注意其中.conf 中修改server listen 端口號,本機同時用了IIS 的話有沖突, 我是改成了2000) 不是RTMP RTSP 的SERVER 這里也要注意
二、FFMPEG操作
1進入FFMPEG.EXE 所在目錄,調用CMD開啟操作窗口
大華的RTSP 地址:
例子:
rtsp://admin:admin@172.16.5.247:554/cam/realmonitor?channel=2&subtype=1
rtsp://[username]:[password]@[ip]:[port]/cam/realmonitor?channel=1&subtype=0
說明:
username: 用戶名。例如admin。
password: 密碼。例如admin。
ip: 為設備IP。例如 10.7.8.122。
port: 端口號默認為554,若為默認可不填寫。
channel: 通道號,起始為1。例如通道2,則為channel=2。
subtype: 碼流類型,主碼流為0(即subtype=0),輔碼流為1(即subtype=1)。
RTSP 轉 RTMP 命令:
ffmpeg -re -rtsp_transport tcp -i “rtsp://admin:admin@172.16.5.247:554/cam/realmonitor?channel=2&subtype=1” -f flv -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 “rtmp://127.0.0.1:1935/live”
RTSP 是大華的RTSP
RTMP:IP是服務器的IP,端口號是 .CONF(上文提到的)里RTMP里的端口號
用VLC測試RTSP 和RTMP 地址的可用性:
RTSP 轉 M3U8:
ffmpeg -f rtsp -rtsp_transport tcp -i “rtsp://admin:admin@172.16.5.168:554/cam/realmonitor?channel=1&subtype=1” -strict -2 -c:v libx264 -vsync 2 -c:a aac -f hls -hls_time 4 -hls_list_size 5 -hls_wrap 10 D:/DHDEMO/nginx-1.7.11.3-Gryphon/html/168_1.m3u8
成功后的效果:
DEMO下載地址: https://download.csdn.net/download/a523879907/12880534
總結
以上是生活随笔為你收集整理的NGINX+ffmpeg 实现 大华摄像头视屏转流RTSP转RTMP或M3U8的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈电力系统短路故障的分析
- 下一篇: R语言中的异常处理和eval函数