gstreamer录制m3u8流

时间:2014-08-08 10:13:42

标签: gstreamer m3u8 gst-launch

我正在尝试从m3u8文件中录制流。 这条管道有效:
gst-launch-0.10 -e souphttpsrc location=(mysrc.m3u8) ! queue ! hlsdemux ! queue ! mpegtsparse ! queue ! mpegtsdemux ! queue ! audio/mpeg ! queue ! filesink location=test.ts
(有时)录制音频流 但我无法录制视频,无论我做什么都会崩溃 我尝试过这样的事情:
gst-launch-0.10 souphttpsrc location=(mysrc.m3u8) ! queue ! hlsdemux ! queue ! mpegtsparse ! queue ! mpegtsdemux ! queue ! video/x-264 ! queue ! filesink location=test.ts
但它没有任何作用。

1 个答案:

答案 0 :(得分:2)

您正在使用gstreamer 0.10,它已过时且未经过分类,所有用户都应升级到1.x系列。

鉴于此警告,您不清楚是否要保存mpegts流或其中的流。

要保存mpegts流,您可以这样做:

gst-launch-1.0 http://path/to/your/stream.m3u8 ! hlsdemux ! filesink

请注意,如果HLS播放列表包含多个比特率,hlsdemux可能会切换比特率,并且它会失败,因为gst-launch-1.0无法处理此问题。 (这是一个调试和测试工具)。您可以设置固定的连接速度"使它总是使用你想要克服这个问题的相同比特率。

如果您只想获得视频流而且您知道它是H264,请尝试:

gst-launch-1.0 http://path/to/your/stream.m3u8 ! hlsdemux ! tsdemux ! queue ! video/x-h264 ! filesink

将它保存为容器格式以便以后更容易使用可能是个更好的主意,例如:

gst-launch-1.0 http://path/to/your/stream.m3u8 ! hlsdemux ! tsdemux ! queue ! video/x-h264 ! h264parse ! qtmux ! filesink

但是,正如我所说的那样,请转到1.x,HLS在1.x时比在0.10时好得多,它应该可以工作。