RTMP协议的视频平台EasyDSS除了直播外,还支持点播,转码、上传一体化设计,使音视频资源转码后可立即面向互联网进行发布,在线上教育领域已经能够成熟落地。
有用户在上传多声道的视频至EasyDSS平台内,通过EasyDSS转码成ts文件,随后使用播放器播放ts文件时出现无法播放的问题。
通过将有问题的ts文件和正常的ts文件进行对比,初步的分析是因为视频文件多声道的问题,导致播放器无法解析多声道,所以播放不出来。
此处我们需要通过命令的方式在转码的时候,将原视频文件中的多声道默认的转成双声道,这样播放器就能够解析出来。
参考代码如下:
-
//-ac 2 设置双声道的
-
args := []
string{
"-fflags",
"+genpts",
"-hide_banner",
"-i", vod.RealPath,
"-vcodec", vcodec,
"-acodec", acodec,
"-ac",
"2"}
-
if vod.Aspect !=
"" {
-
if sizes := strings.SplitN(vod.Aspect,
"x",
2);
len(sizes) ==
2 {
-
h, _ := strconv.Atoi(sizes[
1])
-
if h%
2 !=
0 {
-
args =
append(args,
"-vf",
"scale=iw:trunc(ow/a/2)*2")
-
}
-
}
-
}
当然了,EasyDSS内还运用了很多其他层面的开发技巧,大家可以关注我们,我们将在博客内不定期更新。如果还想了解EasyDSS更多相关内容,欢迎联系我们或者直接访问TSINGSEE青犀视频官方网站。
转载:https://blog.csdn.net/EasyDSS/article/details/113696140
查看评论