AVFoundation concat视频和音频

时间:2017-10-23 09:20:19

标签: swift html5 google-chrome video avfoundation

我试图用AVFoundation框架一个接一个地连接2个视频。当我使用AVAssetExport导出时,结果很好! 当我使用 HTML5视频播放视频时,我可以在Safari,Firefox上观看,但不能在Google Chrome上观看。 经过深入分析后,我发现根本原因是导出的视频有2个音频通道 !!!! 事实上,如果我从视频中删除音频,一切都可以在Google Chrome上使用。

在我的代码中,我添加了相同音轨但不同时间范围的音频:

asset1.tracks(withMediaType: AVMediaTypeAudio)[0].insertTimeRange(asset1.duration, asset1, start1)
asset2.tracks(withMediaType: AVMediaTypeAudio)[0].insertTimeRange(asset2.duration, asset2, start2)

我想这会产生2个单独的录音带,而不是一个,这是谷歌Chrome不允许的。 在此链接中,您可以找到视频:http://www.livebomber.com/prova.php 如果您使用Safari或Firefox打开它可以正常工作,但使用Google Chorome会显示错误。 如何将所有音轨合并为一个并导出? 非常感谢你

1 个答案:

答案 0 :(得分:0)

当我使用this库合并3个视频时,我遇到了同样的问题!其中2个来自相同的资源,但另一个来自不同的资源,具有不同的分辨率和设置。在挖了两天之后,我发现我需要做的就是将有问题的视频音频通道转换成单声道。

我知道,这不是使用任何代码的永久解决方案,但我认为它给那些想要使用代码解决它的人提供了一个想法:)

希望它有所帮助。