一、準備
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/116616.html
標籤:其他
