如何在Gstreamer中构建hls视频(AES加密或未加密)的管道



我是gstreamer的新手。我想通过gstreamer实现一个iOS应用程序来播放hls视频。我使用的是1.6.2版本。我在互联网上学习了一些教程,所以我得到了以下管道:

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

我找到了一些hls视频URL进行测试,但奇怪的是,它部分起作用了
有时它会在几秒钟内播放视频,然后停止并给出: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)。

我几个月前就找到了解决方案,而且效果很好。所以我把它贴出来以备不时之需。

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

当然,对于那些没有太多定制需求的人,你可以使用playbin或uridecodebin。

相关内容

  • 没有找到相关文章

最新更新