我有一个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
是开始时间,第二个是持续时间。换句话说,有两个音频+视频块,在它们之前和之间有一些空的填充空间。
问题在于,当我导出此合成并播放导出的视频时,第二个音频片段播放得太早,就好像导出期间忽略了第二个空填充音频片段一样。我得到第一个视频片段的音频正确,然后是第二个音频片段,然后是第二个视频片段,没有音频。
可能出现什么问题?
答案 0 :(得分:2)
问题在于出口。我正在使用传递导出模式,该模式仅将轨道段复制到生成的文件中。我想时间戳也被简单地复制了,这导致导出的电影的时间线混乱。将导出模式设置为除传递之外的其他模式可以解决问题。