我有一个 AVMutableComposition 具有以下轨道段:

video:
    empty: Y, {{0/1 = 0.000}, {48/100 = 0.480}}
    empty: N, {{48/100 = 0.480}, {600/600 = 1.000}}
    empty: Y, {{888/600 = 1.480}, {900/600 = 1.500}}
    empty: N, {{894/300 = 2.980}, {1040/600 = 1.733}}
audio:
    empty: Y, {{0/1 = 0.000}, {48/100 = 0.480}}
    empty: N, {{48/100 = 0.480}, {45056/44100 = 1.022}}
    empty: Y, {{66224/44100 = 1.502}, {65194/44100 = 1.478}}
    empty: N, {{894/300 = 2.980}, {77824/44100 = 1.765}}

时机表示为 CMTimeRange, , 首先 CMTime 是开始时间,第二个是持续时间。换句话说,有两个音频+视频块,它们之前和之间有一些空的填充空间。

问题在于,当我导出此组合并播放导出的视频时,第二个音频段播放得太早了,好像在导出期间忽略了第二个空填充音频段。我获得了第一个视频段,并立即在第二个音频段,然后是第二个视频片段,而无需音频。

怎么了?

有帮助吗?

解决方案

问题在于出口。我使用的是通行导出模式,该模式仅将轨道段复制到生成的文件中。我猜想的时间邮票也被简单地复制了,这会在导出电影的时间表中造成混乱。将导出模式设置为除通道以外的其他问题可以解决问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top