Rtsp to Rtmp流媒體轉發

RTMP是一種設計用來進行實時數據通訊的網絡協議,主要用來在Flash/AIR平臺和支持RTMP協議的流媒體/交互服務器之間進行音視頻和數據通訊。支持該協議的軟件包括Adobe Media ServerUltrant Media Serverred5nginxnginx

HTTP Live Streaming(HLS)是蘋果公司(Apple Inc.)實現的基於HTTP的流媒體傳輸協議,可實現流媒體的直播和點播,相對於常見的流媒體直播協議,例如RTMP協議、RTSP協議、MMS協議 等,HLS直播最大的不一樣在於,直播客戶端獲取到的,並非一個完整的數據流。HLS協議在服務器端將直播數據流存儲爲連續的、很短時長的媒體文件 (MPEG-TS格式),而客戶端則不斷的下載並播放這些小文件,由於服務器端老是會將最新的直播數據生成新的小文件,這樣客戶端只要不停的按順序播放從服務器獲取到的文件,就實現了直播。因而可知,基本上能夠認爲,HLS是以點播的技術方式來實現直播。因爲數據經過HTTP協議傳輸,因此徹底不用考慮防火牆或者代理的問題,並且分段文件的時長很短,客戶端能夠很快的選擇和切換碼率,以適應不一樣帶寬條件下的播放。不過HLS的這種技術特色,決定了它的延遲 通常老是會高於普通的流媒體直播協議。服務器

nginx配合ffmpeg作流媒體服務器的原理是: nginx經過rtmp模塊提供rtmp服務, ffmpeg推送一個rtmp流到nginx, 而後客戶端經過訪問nginx來收看實時視頻流. HLS也是差很少的原理,只是最終客戶端是經過HTTP協議來訪問的,可是ffmpeg推送流仍然是rtmp的。網絡

1、推送視頻文件到rtmp上app

ffmpeg -re -i "D:\videos\test1.mp4"-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/test1ide

2、推送到視頻文件到hls上測試

ffmpeg -re -i "D:\videos\test1.mp4"-vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv-s 1280x720 -q 10 rtmp://127.0.0.1:1935/hls/test2spa

3、執行ffmpeg命令進行rtsp協議轉成rtmp:設計

ffmpeg -i"rtsp://admin:12345@192.168.3.218/h264/ch1/main/av_stream" -f flv -r25 -s 640x480 -an "rtmp://127.0.0.1:1935/live/test3"代理

-i:後面是我所須要的攝像頭協議code

-f flv:後面是我要轉到nginxrtmp服務器上

-s:視頻解析度:(分配率)也就是能調視屏的清晰度,若是在本機上測試建議640*480就好,改變視屏流的解析式cpu會消耗很大

(rtmp服務地址:rtmp://127.0.0.1:1935/myapp/test2)

127.0.0.1nginx啓動的機器ip

1935:端口號(以前在nginx.conf裏配置的)

live:是application 後面的名稱

test3:能夠隨便起,記獲得時候訪問rtmp時要一致

相關文章
相關標籤/搜索