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