• RTMP推流协议视频直播点播平台EasyDSS如何在虚拟直播下对视频资源循环播放?


    我们常见的视频流接入协议包括RTSP协议、RTMP协议、GB28181协议三种,针对这三种协议,TSINGSEE青犀视频研发了不同的视频解决方案,其中EasyDSS是支持推流协议RTMP接入的平台,它与其他平台不同的点在于EasyDSS可同时支持视频直播和点播。

    EasyDSS添加虚拟直播后,将直播源设置为点播资源,推送到直播间,正常的来说,推送到直播间的点播视频在没有关闭虚拟直播的时候,会一直循环播放。但是实际上我们测试发现点播视频结束后,并没有循环播放,而是直接停止了。

    对于这种问题,我们首先考虑的是推流的命令是否存在问题,因此测试的时候我们关注了该命令,发现命令中是对m3u8进行拉流然后再推流。但是命令中有-vcodec copy -acodec copy ,这个命令是针对H264的,不进行转码操作,所以导致直播出现断层,无法循环播放。

    我们可以对代码做以下修改:

    // 转换成 h264 有两种参数操作 libx264、h264_nvenc
    // copy 为默认原数据编码
    if vod.Rotate == 0 {
       switch vod.VidioCodecOriginal {
       case "H.264":
          vcodecstr = "copy"
       case "VP9":
          // vp9 编码,仅能够转换成 h265 编码, nvenc 代表设置编码
          vcodecstr = "hevc_nvenc"
       case "HEVC":
          // hevc 编码为 h265 编码,转换成 h264,有两种 h264_nvenc、libx264、copy
          // libx264 会导致 cpu 使用率 为 100%
          vcodecstr = h265VideoTranWay
       default:
          vcodecstr = videoTranWay
       }
    }
    
    if strings.EqualFold(vod.AudioCodecOriginal, "AAC") {
       acodecstr = "copy"
    }
    //判断点播源文件是否存在,并且是视频优先从源文件
    if vod.Path != consts.EmptyString && efile.Exisit(filepath.Join(conf2.GetConf().DirVODSrc, vod.Path)) && strings.Contains(vod.Type, "video") {
       src = filepath.Join(conf2.GetConf().DirVODSrc, vod.Path)
       if vod.VideoCodec == "H.264" && vod.AudioCodec == "AAC" && vod.Rotate == 0 {
          vcodec = []string{vcodecstr}
          acodec = []string{acodecstr}
       }
    

    新代码中不对m3u8文件进行拉流,是将点播的源数据当做视频源进行拉流,然后通过不同的文件编码类型,进行不同的命令操作拉流。

    当然如果不想点播视频循环播放,也可以自行修改。如果大家有接入RTMP协议视频流的需求,可以联系我们获取EasyDSS平台的测试账号进行测试,如果还想了解更多视频相关解决方案,欢迎访问TSINGSEE青犀视频官方网站。

  • 相关阅读:
    jQuery Validate 表单验证
    在同一个页面使用多个不同的jQuery版本,让它们并存而不冲突
    移动端手势库hammerJS 2.0.4官方文档翻译
    Linux下查看nginx安装目录
    Mac Mini中添加VNC访问
    CSS3属性选择通配符
    【LeetCode】9 Palindrome Number 回文数判定
    【LeetCode】8. String to Integer (atoi) 字符串转整数
    【LeetCode】7. Reverse Integer 整型数反转
    【LeetCode】6. ZigZag Conversion 锯齿形转换
  • 原文地址:https://www.cnblogs.com/easydss/p/14174213.html
Copyright © 2020-2023  润新知