2010-12-16 109 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

問題在出口。我正在使用傳遞導出模式,它僅將軌道段複製到生成的文件中。我想時間戳也被簡單地複製,導致導出的電影的時間線混亂。將出口模式設置爲傳遞以外的其他內容可以解決問題。