1

我正在尝试从 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
但它什么也没做。

4

1 回答 1

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 中要好得多,它应该可以工作。

于 2014-08-09T12:38:05.133 回答