使用ffmpeg循环推流(循环读取视频文件)推送EasyDSS RTMP、HLS(m3u8)、HTTP-FLV流媒体服务器的方法

版权声明:本文为EasyDSS技术团队原创文章,未经博主允许不得转载。 https://blog.csdn.net/EasyDSS/article/details/90716802

需求分析

众所周知,EasyDSS与EasyNVR最大的区别是,EasyDSS被动接受前端设备的推流,将推送过来的直播流进行直播转码、智能处理、视频分发,在通过CDN分发节点分发到终端播放SDK。而EasyNVR则是通过RTSP协议,主动拉取前端设备的直播流,同样分发出RTMP、HTTP-FLV、HLS格式的直播流。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支持多种特性,完全能够满足企业视频信息化建设方面的需求:

扫描二维码关注公众号,回复: 6605983 查看本文章
  • 多屏播放:支持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

猜你喜欢

转载自blog.csdn.net/EasyDSS/article/details/90716802