在线课堂/在线医疗直播点播平台EasyDSS如何将音频和视频数据分离?

跟所有TSINGSEE青犀视频云边端架构产品一样,EasyDSS视频直播点播平台可以将音视频数据同步传输和录制,但是在部分现场中,项目需要将直播的视频和音频流进行分离,单独获取音频流数据。

比如在我们本文分享的案例中,客户推流直播数据中生成的ts文件是有视频流和音频流的,但是实际上推流端只推送音频流数据,应客户的需求,直播数据只要生成音频流数据,这样用手机播放数据的时候在锁屏的状态下也能听到声音,但是就目前如果音视频两种流都有的话,手机锁屏会导致音频和视频流的同步中止播放。

此处我们需要在获取数据之前将视频流和音频流都分离即可。在下载指定时间段录像的接口中,将ts文件转成了MP4文件,然后再将MP4文件中的视频分离出来,只剩下音频数据输出成MP4文件。

再次查看直播数据的输出,只有音频流进行输出了。

 参考代码如下:

if ty == "0" {
   var params1 []string
   params1 = append(params1, "-i", mp4PathTmpAudio)
   params1 = append(params1, "-acodec", "copy", "-vn", mp4Path)
   //params = append(params, mp4Path)
   cmd := exec.Command(EasyTrans(), params1...)
   cmd.Start()
   cmd.Wait()
   fmt.Println(cmd.Args)
   efile.RemoveFile(mp4PathTmpAudio)
}

  

当然在进行音频编码的时候,要确保音频编码的规范,否则也会出现无法播放或者音频识别失败的问题。当然EasyDSS也是支持用户实际下载部署测试的,欢迎了解。

原文地址:https://www.cnblogs.com/easydss/p/14714530.html