2011-11-01 47 views
3

就像在當前的iOS SDK中沒有辦法從視頻獲取壓縮幀一樣,我們如何實現像Skype這樣的流媒體直播呢? 我現在看到的唯一方法是:發送幀到服務器的最佳技術是什麼?或者直播在iOS上如何工作?

  1. 從AVCaptureVideoDataOutput獲得非壓縮幀
  2. 壓縮使用第三方庫
  3. 幀發送到服務器

這些幀是否有任何其他的方式來完成這項任務?哪些庫可用於壓縮,並且它們與appstore兼容? 在此先感謝

+0

實測值這一點,請參閱另一[主題] [1] [1]的一些信息:http://stackoverflow.com/questions/7979842/video-encoding-libraries-for-ios – peetonn

回答

3

我也很努力。 ffmpeg庫似乎適用於壓縮,但授權意味着您必須發佈源代碼。

您可以將對象從AVCaptureVideoDataOutput委託和落實科學調度隊列此回調:

  • (無效)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection * )連接;

然後你會得到無壓縮視頻,您可以加工成一個UIImage或JPEG(蘋果有此代碼樣本),但有沒有辦法讓硬件壓縮H264幀,這是我們真正想要的。這是你可以實現像ffmpeg這樣的庫來將視頻壓縮成H264或其他類型的地方。

目前,我試圖看看我是否可以解釋AVAssetWriter文件輸出並將其重定向到流(它可以編寫硬件壓縮視頻),但是由於某種原因,Apple似乎正在使這一點變得困難。

讓我知道如果你發現有用的東西。

+0

哎,檢查另一個我的線程在這裏http://stackoverflow.com/questions/7979842/video-encoding-libraries-for-ios。我發現福克斯解決方案庫實現硬件編碼。 – peetonn

+0

@dwsolberg您是否發現任何將AVAssetWriter文件輸出重定向到流的解決方案。我正在尋找相同或簡單的詞語,我正在尋找編碼視頻幀。 –

相關問題