使用ffmpeg -re循環推流(循環讀取視頻文件)推送EasyDSS RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒體服務器的方法


需求分析

眾所周知,EasyDSS與EasyNVR最大的區別是,EasyDSS被動接受前端設備的推流,將推送過來的直播流進行直播轉碼、智能處理、視頻分發,在通過CDN分發節點分發到終端播放SDK。而EasyNVR則是通過RTSP協議,主動拉取前端設備的直播流,同樣分發出RTMP、HTTP-FLV、HLS、RTSP格式的直播流。EasyDSS前端采用的是一套調用簡單、功能完善、高效穩定的EasyRTMP推流組件,支持RTMP推送斷線重連、環形緩沖、智能丟幀、網絡事件回調,支持Windows、Linux、ARM、Android、iOS平台,支持市面上絕大部分的RTMP流媒體服務器,能夠完美應用於各種行業的直播需求,手機直播、桌面直播、攝像機直播、課堂直播等方面。
EasyDSS

在做EasyDSS開發時,重點測試推流效果,可以使用libEasyRTMP進行推流測試,可以使用OBS進行推流測試,也可以使用其他RTMP推流工具,效果都很好。但是,別忘了還有ffmpeg這個神器,ffmpeg同樣可以獲取各種視頻流,並推送給EasyDSS RTMP流媒體服務器。

比如:拉取攝像機RTSP流,推送給EasyDSS,命令在此:

ffmpeg -re -i rtsp://username:password@ip:port/xxxxxxx -vcodec copy -acodec copy -f flv -y rtmp://easydssip:easydssport/live/test

當然,這個命令僅限於攝像機提供的H.264+AAC的碼流

  • 若不是則將-vcodec copy改為-vcodec libx264-acodec copy改為-acodec aac
  • 若是,我們想用ffmpeg讀取文件進行RTMP推送,可以選擇OBS,畢竟ffmpeg比OBS更輕量,命令在此:
 ffmpeg -re -i test.h264 -vcodec copy -acodec copy -f flv -y rtmp://easydssip:easydssport/live/test

-vcodec和-acodec按需更改同拉取RTSP流,這樣可以滿足我們推送文件到EasyDSS的目的。

如果我想一直循環讀取文件,做個長測呢?

解決方案

 ffmpeg -re  -stream_loop -1 -i test.h264 -vcodec copy -acodec copy -f flv -y rtmp://easydssip:easydssport/live/test

對比發現,以上命令加了一個-stream_loop -1,它是什么作用呢?

EasyDSS

https://ffmpeg.org/ffmpeg-all.html#Main-options

我們明白了此選項可以指定循環讀取視頻源的次數,-1為無限循環,以上問題就此完美解決。

關於EasyDSS

EasyDSS商用流媒體服務器提供一站式的轉碼、點播、直播、時移回放服務,極大地簡化了開發和集成的工作,並且EasyDSS支持多種特性,完全能夠滿足企業視頻信息化建設方面的需求:

  • 多屏播放:支持Flash、HTML5播放,兼容Windows、Android、iOS、Mac等操作系統。

  • 自由組合:EasyDSS軟件產品之間無縫對接,也可將EasyDSS流媒體服務器軟件與其他第三方平台對接,組合靈活自由。

  • 支持雲架構:支持阿里雲、騰訊雲、華為雲、青雲、七牛雲存儲等各大雲服務商,支持雲架構,部署更靈活。

  • 與CDN無縫對接:EasyDSS軟件產品支持與網宿、帝聯、藍汛等CDN無縫對接。

  • 二次開發簡單:提供編程語言無關化的RESTful API接口,只要了解JS、HTML、JAVA、ASP.NET、PHP、ASP等開發語言中的任意一種,就能運用EasyDSS提供的RESTful API進行二次開發。

  • 簡單易用:圖形化操作,模塊清晰,流程簡單,極易上手。

EasyDarwin如何支持點播和RTMP/HLS直播?EasyDSS!

適用場景

EasyDSS

在這里插入圖片描述
EasyDSS


免責聲明!

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



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