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