11
我正在使用常規套接字通過網絡連接傳輸電影內容的小型iPhone應用程序。該視頻格式爲H.264
。然而,我無法播放/解碼數據。我一直在考慮使用FFMPEG
,但許可證使它不適合該項目。我一直在研究Apple的AVFoundation
框架(尤其是AVPlayer
),它似乎能夠處理h264內容,但是我只能找到使用url啓動電影的方法 - 而不是通過證明從內存緩衝網絡。在iOS上使用AVFoundation播放套接字流h.264電影
我一直在做一些測試,以反正這一點,使用以下方法:
- 使用常規
AVPlayer
播放短片。每次在網絡上收到數據時,都會使用帶附加模式的fopen將其寫入文件。AVPlayer
的資產然後用更新的數據重新加載/重新創建。這種方法似乎有兩個問題:首先,屏幕在短暫時間內變黑,而第一個資產被卸載並且新加載。其次,我不清楚播放停止的位置,所以我不確定如何找到合適的地方開始播放新的資源。 - 第二種方法是像第一種方法那樣將數據寫入文件,但不同之處在於數據被加載到第二個資產中。然後使用
AVQueuedPlayer
,其中第二個資產在播放器中插入/排隊,然後在緩衝完成時調用。第一個資產可以在沒有黑屏的情況下卸載。但是,使用這種方法,要找出從哪裏開始播放新資產,要比第一種方法更麻煩。
有沒有人做過這樣的事情,並使其工作?有沒有適當的方式使用AVFoundation
?
您是否找到了答案?我也一樣,我試圖播放包含單個幀H264文件(0.264文件擴展名),並試圖對其進行解碼。 AVAssetReader不接受這種文件格式,我唯一的計劃是每幀創建一個mp4文件(這聽起來很瘋狂)。 – Cthutu 2012-05-16 15:06:52
是否有特定的原因,爲什麼來源必須推動視頻,而不是讓應用程序拉它? HLS通常反過來工作。如果您的源計算機可以運行OSX,則有Apple工具可以通過UDP rtsp輸入流爲您分段。如果沒有,你可能僞造了AVPlayer以爲它通過在電話 - 塊運行的代理文件處理正常HLS,因爲它到達,並寫一些代碼來生成一個合適的假.m3u8播放列表來表示塊。 – 2012-07-03 22:17:31