2013-01-06 78 views
6

我有構建iOS應用程序的經驗,但沒有視頻經驗。我想要構建一個將實時視頻流傳輸到服務器的iPhone應用程序。一旦在服務器上,我將實時向消費者提供該視頻。捕獲,編碼,然後將視頻流從iPhone傳輸到服務器

我讀過不少材料。如果以下內容是正確的,是否有人能告訴我並填寫我的空白。

  1. 要在iPhone上錄製視頻,我應該使用AVFoundation類。使用AVCaptureSession時,代理方法captureOutput:didOutputSampleBuffer :: fromConnection I可以訪問每個視頻幀。現在我需要對視頻幀進行編碼了
    • 我知道基礎類僅通過AVAssetWriter提供H264編碼,而不是通過輕鬆支持流式傳輸到Web服務器的類。因此,我將視頻寫入文件。
    • 我讀過的其他文章說,他們可以使用兩個AssetWritters寫10個第二個塊,然後NSStream將這10個第二個塊寫入服務器。有人可以解釋如何編碼使用兩個AVAssetWriters一起工作來實現這一點。如果任何人有代碼,他們可以請分享。
+0

你可以請你分享你最終使用的? –

回答

5

你是正確的,要在iPhone上使用的硬件解碼器的唯一方法是通過使用AVAssetWriter類寫的編碼的視頻文件。不幸的是,AVAssetWriter不會將moov原子寫入文件(這是解碼編碼視頻所需的),直到文件關閉。

因此,將編碼視頻流式傳輸到服務器的一種方法是將10個第二塊視頻寫入文件,關閉它並將該文件發送到服務器。我已經讀過,這種方法可以在關閉和打開文件所引起的回放中使用,但我自己並沒有嘗試過。

我發現了另一種方式來流視頻here

本示例打開2個AVAssetWriters。然後在第一幀寫入兩個文件,但立即關閉其中一個文件,以便moov原子被寫入。然後使用moov原子數據,第二個文件可以用作管道來獲得編碼視頻數據流。這個例子只適用於發送視頻數據,但它非常乾淨,易於理解,幫助我瞭解如何處理iPhone上視頻的許多問題。

+0

我對您的答案有疑問,我如何將音頻數據嵌入到此 –

相關問題