2016-05-13 48 views
1

我是gstreamer的新手。我想實現一個iOS應用通過gstreamer播放hls視頻。我使用版本1.6.2。我跟着在互聯網上的一些教程,所以我得到了下面的管道:如何在Gstreamer中構建hls視頻管道(AES加密或不加密)

souphttpsrc location=some_m3u8_url ! hlsdemux ! tsdemux name=mux mux. ! queue ! h264parse ! avdec_h264 ! autovideosink mux. ! queue ! aacparse ! faad ! autoaudiosink

我發現了一些HLS視頻要測試的網址,但奇怪的是,這部分的工作。
有時它會在幾秒鐘內播放視頻,然後停止播放:Error received from element hlsdemux0: Internal data stream error.
有時它不會播放視頻,只是顯示此視頻的第一幀。

我也試過playbindecodebin,但他們沒有工作。錯誤信息,如:
Buffering 4%
Buffering 8%
Error received from element hlsdemux0: GStreamer encountered a general stream error

這種錯誤使我懊惱星期,我找不到任何幫助。此外,我需要的還是播放加密的視頻,但我不知道該功能是否已整合。

希望有人能幫助我或給我一些建議。非常感謝!

PS:開發環境:Xcode 7.3,iOS 9.3.1(ipad)。

+0

你能升級到1.6.4嗎?我認爲有一些錯誤修正..你也可以玩緩衝區大小和使用更大的緩衝區,也可以使用'uridecodebin uri = somelocation buffer-size = 10000000 name = u u'更簡單的管道。 ! autovideosink u。 autoaudiosink'或類似的東西.. – nayana

+0

@otopolsky感謝您的建議。我更新了,但沒有更好的。它緩衝到98%,停在第一幀。不管我如何改變緩衝區大小,我都無法播放它。 – Silver

回答

0

幾個月前我找到了解決方案,它的工作完美。所以我張貼它以防萬一需要。

souphttpsrc name=src ! hlsdemux ! tsdemux name=u u. ! queue ! h264parse ! avdec_h264 ! autovideosink u. ! queue ! aacparse ! faad ! audioconvert ! audioresample ! autoaudiosink

當然你也可以使用playbin或uridecodebin爲那些誰擁有定製的沒有多少需求。