2015-10-14 28 views
0

我手動生成.mov視頻文件。Mov文件的幀數多於寫入/可能的iOS AVAsset寫入器使用問題

這裏是一個示例文件的鏈接:link,我寫了幾個圖像幀,然後長時間休息後寫了大約15個圖像幀,以強調我的出場目的。當我從視頻中提取圖像時,ffmpeg會返回大約400幀,而不是我預期的15-20幀。這是因爲我使用的API是自動插入這些圖像文件?它是需要這個的.mov文件格式的一部分嗎?還是由於圖書館從視頻中提取圖像幀的方式?我試圖搜索互聯網,但無法得出答案。

我的使用案例是,我正在寫視頻的同時,從核心運動中寫入當前的「傳感器數據」(來自核心運動)。對於我從相機接收的每一幀,我使用「AppendPixelBuffer」將幀寫入視頻,然後

感謝您的任何幫助。最終的結果是,我希望視頻中的幀與CSV文件中的行的比例爲1:1。我已經確認我正在使用各種計數器正確寫入CSV文件等。所以我的問題很明顯是對電影格式或API的理解。

感謝您的任何幫助。

回答

0

已更新 看起來像您的ffmpeg提取器是錯誤的。如果只提取文件的時間戳的幀(而不是在24Hz的採樣幀),試試這個:

ffmpeg -i video.mov -r 1/1 image-%03d.jpeg 

這給了我預期的20幀。

OLD ANSWER

ffprobe報道您的視頻具有2.19幀/秒的幀速率和17S的持續時間,這使2.19×17 = 37幀,其是更接近你的預期15-20比ffmpeg的400.

所以也許ffmpeg提取器是錯?

很難說如果你不顯示你如何編碼和解碼文件。

+0

嗨,「ffmpeg -i movie.mov image %% 4d.jpg」是我用來從電影中提取幀的。我正在使用AVFoundation API來創建視頻。我粘貼了下面的關鍵位。 我附加像素緩衝區使用: CMTime時間= CMSampleBufferGetPresentationTimeStamp(sampleBuffer); 一些配置: self.assetWriter = [AVAssetWriter assetWriterWithURL:imageDirectory fileType:AVFileTypeMPEG4 error:&error]; AVAssetWriterInput輸出設置:AVVideoCodecKey:AVVideoCodecJPEG, –

+0

感謝您的幫助,當我回到我的系統時,我會對其進行測試並回復給您。 –

+0

是否爲你工作? –