【问题标题】:gstreamer recording m3u8 streamgstreamer 录制 m3u8 流
【发布时间】:2014-08-08 10:13:42
【问题描述】:

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

【问题讨论】:

    标签: gstreamer m3u8 gst-launch


    【解决方案1】:

    您正在使用已过时且无人维护的 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 中要好得多,它应该可以工作。

    【讨论】:

    • 我必须将视频和音频分别获取到不同的文件,但现在我专注于获取任何可以工作的内容。我正在尝试 gst-launch-1.0 path/to/your/stream.m3u8 ! hlsdemux ! filesink 但是当我尝试用 vlc 播放它时它会在大约 1 秒后崩溃。也许是因为 h3u8 文件中实际上有多个比特率。我不知道如何使用连接速度
    • 连接速度的设置与任何其他属性一样。 hlsdemux 属性=值。检查 gst-inspect-1.0 hlsdemux 以获得可用的描述。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    相关资源
    最近更新 更多