EasyDSS视频平台支持全平台的直播和点播,并且能够分发多种协议(hls、rtmp、flv、rtsp)的视频流,很多有在线课堂或在线医疗需求的项目团队在流媒体服务器的选择中,都会优先测试EasyDSS的性能。
EasyDSS在测试过程中,播放全协议的视频偶尔会出现卡顿的问题,这个问题出现的原因其实与EasyDSS系统内拉转推视频流的操作有关,具体可以参考:EasyDSS如何解决由拉转推造成的CPU占用问题。在该问题中,我们的解决方法是通过EasyNVR拉取点播的视频流,再转推给EasyDSS。
我们对该方法也进行了验证,但测试的同时也伴随新的问题。那就是在播放通过EasyNVR转推来的视频时,出现了类似掉帧的播放画面。
针对掉帧问题,可以从多个方面来进行分析。
1、视频源
视频源是通过点播文件来实现的,我们测试了其他方式来处理视频的推送,发现不同的视频源通过EasyNVR推流都会出现类似于掉帧的问题。此时会出现两个猜测,一个是我们使用的方式有问题,另一个是这些视频源有问题。
2、拉转推环节
我们通过两个方式来验证拉转推环节的问题:
1、EasyNVR来进行转推;
2、FFmpeg来进行转推;
3、OBS实现拉转推。
ffmpeg使用的命令是:
ffmpeg -re -stream_loop -1 -i http://192.168.99.66:10080/fvod/3xJsVVrMR/video.m3u8 -vcodec copy -f flv rtmp://192.168.99.66:10035/hls/Q7k9IVrMR?sign=QnzrS4rGgz
这个命令的出现即代表ffmpeg的转推没有问题,且通过OBS来做测试,也并未发现问题,因此该问题应该是由于EasyNVR拉转推的流程上。
目前,EasyNVR的拉转推功能也正在优化当中,待优化完毕后则可以正常使用拉转推功能,此外也可以通过将我们测试过的方式,比如ffmpeg、obs等集成到EasyDSS中来实现这个效果。