2010-12-16 61 views
2

我有以下轨道段的AVMutableComposition音频输出与视频同步的在渲染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

问题在出口。我正在使用传递导出模式,它仅将轨道段复制到生成的文件中。我想时间戳也被简单地复制,导致导出的电影的时间线混乱。将出口模式设置为传递以外的其他内容可以解决问题。