如何在 Gstreamer 中构建 hls 视频(AES 加密与否)的管道
How to construct the pipeline for hls videos (AES encrypted or not) in Gstreamer
我是 gstreamer 的新手。我想实现一个 iOS 应用程序来播放 gstreamer 的 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 视频网址,但奇怪的是,它部分有效。
有时它会在几秒钟内播放视频然后停止并显示:Error received from element hlsdemux0: Internal data stream error.
有时它不播放视频而只显示该视频的第一帧。
我也尝试了 playbin
和 decodebin
,但它们没有用。错误信息如:
Buffering 4%
Buffering 8%
Error received from element hlsdemux0: GStreamer encountered a general stream error
这种错误让我心烦意乱了好几个星期,我找不到任何帮助。另外,我还需要播放加密后的视频,不知道有没有集成这个功能。
希望有人能帮助我或给我一些建议。非常感谢!
PS: 开发环境: Xcode 7.3, iOS 9.3.1 (ipad).
我几个月前就找到了解决方案,而且效果很好。所以我 post 以备不时之需。
souphttpsrc name=src ! hlsdemux ! tsdemux name=u u. ! queue ! h264parse ! avdec_h264 ! autovideosink u. ! queue ! aacparse ! faad ! audioconvert ! audioresample ! autoaudiosink
当然没有太多定制需求的可以使用playbin或者uridecodebin
我是 gstreamer 的新手。我想实现一个 iOS 应用程序来播放 gstreamer 的 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 视频网址,但奇怪的是,它部分有效。
有时它会在几秒钟内播放视频然后停止并显示:Error received from element hlsdemux0: Internal data stream error.
有时它不播放视频而只显示该视频的第一帧。
我也尝试了 playbin
和 decodebin
,但它们没有用。错误信息如:
Buffering 4%
Buffering 8%
Error received from element hlsdemux0: GStreamer encountered a general stream error
这种错误让我心烦意乱了好几个星期,我找不到任何帮助。另外,我还需要播放加密后的视频,不知道有没有集成这个功能。
希望有人能帮助我或给我一些建议。非常感谢!
PS: 开发环境: Xcode 7.3, iOS 9.3.1 (ipad).
我几个月前就找到了解决方案,而且效果很好。所以我 post 以备不时之需。
souphttpsrc name=src ! hlsdemux ! tsdemux name=u u. ! queue ! h264parse ! avdec_h264 ! autovideosink u. ! queue ! aacparse ! faad ! audioconvert ! audioresample ! autoaudiosink
当然没有太多定制需求的可以使用playbin或者uridecodebin