[英]How do you write audio to the first frame with AVAssetWriter while capturing video/audio on iOS?
長話短說,我正在嘗試實施一個天真的解決方案,用於將視頻從iOS攝像頭/麥克風傳輸到服務器。
我使用AVCaptureSession
與音頻和視頻AVCaptureOutputs
,然后用AVAssetWriter
/ AVAssetWriterInput
捕捉視頻和音頻在captureOutput:didOutputSampleBuffer:fromConnection
方法和程序將最終的視頻文件。
為了使這個流,我使用的是NSTimer
的視頻文件分解成1秒塊(在不同的熱插拔AVAssetWriter
具有不同outputURL
),並上傳這些通過HTTP服務器。
這是有效的,但我遇到的問題是: .mp4
文件的開頭似乎總是在第一幀中丟失音頻,所以當視頻文件在服務器上連接(運行ffmpeg
)時,有一個明顯的音頻跳過這些文件的交叉點。 視頻很好 - 沒有跳過。
我嘗試了很多方法來確保沒有丟棄CMSampleBuffers
並檢查它們的時間戳以確保它們轉到正確的AVAssetWriter
,但無濟於事。
使用帶有AVAssetWriter
AVCaptureMovieFileOutput
和AVCaptureLocation示例檢查AVCam示例 ,看起來它們生成的文件執行相同的操作。
也許有一些基本的東西,我在這里誤解了音頻/視頻文件的性質,因為我是視頻/音頻捕捉的新手 - 但我想在我嘗試通過學習使用ffmpeg
來解決這個問題之前我會檢查一下做分段流(如果你有任何提示,請告訴我!)。 提前致謝!
我有同樣的問題,並通過使用不同的API,音頻隊列錄制音頻來解決它。 這似乎解決了它,只需要照顧時間,以避免聲音延遲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.