跟所有TSINGSEE青犀视频云边端架构产品一样,EasyDSS视频直播点播平台可以将音视频数据同步传输和录制,但是在部分现场中,项目需要将直播的视频和音频流进行分离,单独获取音频流数据。
比如在我们本文分享的案例中,客户推流直播数据中生成的ts文件是有视频流和音频流的,但是实际上推流端只推送音频流数据,应客户的需求,直播数据只要生成音频流数据,这样用手机播放数据的时候在锁屏的状态下也能听到声音,但是就目前如果音视频两种流都有的话,手机锁屏会导致音频和视频流的同步中止播放。
此处我们需要在获取数据之前将视频流和音频流都分离即可。在下载指定时间段录像的接口中,将ts文件转成了MP4文件,然后再将MP4文件中的视频分离出来,只剩下音频数据输出成MP4文件。
再次查看直播数据的输出,只有音频流进行输出了。
参考代码如下:
代码语言:javascript复制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也是支持用户实际下载部署测试的,欢迎了解。