2

我有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是开始时间,第二个是持续时间。换句话说,有两个音频+视频块,在它们之前和它们之间有一些空白的填充空间。

问题是,当我导出此合成并播放导出的视频时,第二个音频段播放得太早,就好像第二个空填充音频段在导出期间被忽略了一样。我得到第一个带有正确音频的视频片段,然后是第二个音频片段,然后是第二个没有音频的视频片段。

有什么问题?

4

1 回答 1

2

问题出在出口上。我正在使用传递导出模式,该模式仅将轨道段复制到生成的文件中。我猜时间戳也只是简单地复制了,这会导致导出电影的时间线混乱。将导出模式设置为传递以外的其他方式可以解决问题。

于 2011-01-07T16:32:33.077 回答