zoukankan      html  css  js  c++  java
  • EasyDSS多路视频合成一个视频流时如何解决卡顿、内容丢失等问题?

    在我们进行EasyDSS某个项目的定制版本开发时,项目要求能够在EasyDSS内生成一个完整的多路合成视频文件和复合的播放地址。起初的执行逻辑是根据需求直接将符合要求的ts文件按照时间和通道顺序写入提供播放的m3u8文件中。但在后期测试中发现,这样直接进行合成出的MP4文件以及m3u8播放文件都会出现音画不同步、卡顿、视频内容丢失等问题。

    因为是多路的视频文件合成,视频的分辨率、视频格式编码、时间戳等等信息都有可能影响最终的合成结果,所以采用这种强制的拼接方式会导致m3u8文件无法正常播放。而现有的MP4合成逻辑也是通过生成的m3u8制作,所以也会影响MP4文件的最终效果。

    例如多路视频中有部分内容的时间戳相同,这样就会出现视频能够播放的帧数与实际长度不符,产生卡顿,视频丢失,或者音画不统一的问题。

    为了更快的实现MP4和m3u8播放文件的生成,新的模式是独立生成MP4和m3u8文件,MP4的生成不再依赖m3u8文件,直接通过ts录像文件切片生成。这样不仅能够提高合成速度,也可以避免因为m3u8文件的错误从而导致MP4文件的错误。

    同样的m3u8文件的生成规则也有直接将符合条件的ts文件信息写入改成了,由ffmpeg重新对符合条件的文件进行编辑生成新的ts文件和m3u8文件。

    Ts转MP4 Ffmpeg命令参数:

    Ts转m3u8 Ffmpeg命令参数:

    EasyDSS能够获得众多开发者的青睐,主要优势包括以下几点:

    1、接收RTMP直播流,并且转成HLS、FLV、RTMP等协议流进行第三方调用及播放;

    2、EasyDSS内设立了虚拟直播的功能,可以将其他视频流转成直播流,并分享给第三方系统;

    3、支持自行上传视频文件,并通过点播的方式播放;

    4、平台内设角色管理、用户管理、通道管理等多重权限管理机制,支持权限分配,便于多人管理团队的共同使用。

    有兴趣的朋友可以联系我们了解,我们均提供为期30天的试用版本供大家测试使用。

  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    108. Convert Sorted Array to Binary Search Tree
    111. Minimum Depth of Binary Tree
    49. Group Anagrams
    使用MALTAB标定实践记录
    442. Find All Duplicates in an Array
    522. Longest Uncommon Subsequence II
    354. Russian Doll Envelopes
    opencv 小任务3 灰度直方图
    opencv 小任务2 灰度
  • 原文地址:https://www.cnblogs.com/easydss/p/15104314.html
Copyright © 2011-2022 走看看