需求分析
众所周知,EasyDSS与EasyNVR最大的区别是,EasyDSS被动接受前端设备的推流,将推送过来的直播流进行直播转码、智能处理、视频分发,在通过CDN分发节点分发到终端播放SDK。而EasyNVR则是通过RTSP协议,主动拉取前端设备的直播流,同样分发出RTMP、HTTP-FLV、HLS、RTSP格式的直播流。EasyDSS前端采用的是一套调用简单、功能完善、高效稳定的EasyRTMP推流组件,支持RTMP推送断线重连、环形缓冲、智能丢帧、网络事件回调,支持Windows、Linux、ARM、Android、iOS平台,支持市面上绝大部分的RTMP流媒体服务器,能够完美应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等方面。
在做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
,它是什么作用呢?
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!
适用场景