簡體   English   中英

在iOS上捕獲視頻/音頻時,如何使用AVAssetWriter將音頻寫入第一幀?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM