2013-04-24 68 views
0

我可能花了最近2周搜索Apple Quicktime文檔來解決看起來像一個非常基本的問題,但無濟於事。這裏的問題...查看QTMovie持續時間屬性?

我有幾個簡短的QTMovie文件,每個文件包含三個軌道 - 通常兩個包含聲音和視頻,再加上一個額外的視頻軌道持有字幕文本圖像(一共製作兩個視頻軌道) 。如果我在Quicktime Pro中選擇這些曲目中的一個並將其導出爲「電影到圖像序列」,我可能會發現,在電影的整個播放過程中都會傳播142個靜止圖像。我的搜索方法也會報告正確的幀數。

現在,我已經瞭解到,只要使用'attributeForKey:QTMovieDurationAttribute',您就可以拍攝單幅圖像,將它們添加到QTMovie,並設置它們各自的屏幕顯示時間。但我怎麼去訪問那個數據呢? (這基本上就像是這個過程的反面)。

在僞碼什麼,我試圖做的是一樣的東西:

{ 
select video track #2 ... 
call up the first image in the sequence ... 
access and note its on-screen duration setting ... 
call up the second image ... 
access and note its duration ... 
... repeat until done. 

}

我沒有編輯這個數據或任何後 - 只要找出我如何能得到訪問視頻軌道中的單個幀......並且其中的這個時間信息隱藏在QT的腸內。

作爲一名老年公民,我認爲我已經開始爲這類事情而老去,而且Quicktime是一個很大,往往很複雜和混亂的框架,所以如果任何人都可以用一些建議或(理想情況下)幫助我這裏有幾行示例代碼,我真的很感激它。在此先感謝:-)

回答

0

好的。經過幾天的挖掘和實驗,我終於找到了自己的問題的答案。爲了得到我所用的(下一)字幕圖像:

// access the subtitle track 
Track theTrack = [self getVideoSubtitleTrack]; 

// set flags to find NEXT image (ignoring the current one)... 
myFlags = nextTimeStep; 
// ... and search forward from current position. 
GetTrackNextInterestingTime(theTrack, myFlags, playheadPos, fixed1, &nextInterestingTime, NULL); 

這僅發現了一個圖像對象的開始,雖然,通過跟蹤迭代找到的每個連續圖像的領先優勢。但我也想要當前文本的結束時間。

獲得開始時間後,我試驗了七個可用的標誌,發現將標誌設置爲'nextTimeTrackEdit'會得到結束時間。