【问题标题】:One liner to create HLS stream一个创建 HLS 流的班轮
【发布时间】:2015-04-29 06:15:24
【问题描述】:

IIUC 与 HLS 或 DASH,我可以创建一个清单并直接从我的 httpd 提供这些段,例如python -m http.server.

我在 /dev/video1 上有一个 UVC 视频源,我正在努力在 gstreamer 或 ffmpeg 中创建一个简单的 m3u8。

我做到了:

gst-launch-1.0 -e v4l2src device=/dev/video1 ! videoconvert ! x264enc ! mpegtsmux ! hlssink max-files=5

有什么想法吗?

【问题讨论】:

    标签: ffmpeg gstreamer http-live-streaming mpeg-dash


    【解决方案1】:
    1. 视频

    列出video1 设备功能:

    ffmpeg -f v4l2 -list_formats all -i /dev/video1

    1. 音频(ALSA 示例)

    列出 ALSA 设备:

    arecord -L

    1. HLS

    使用两个输入:

     ffmpeg -f alsa -i <alsa_device> -f v4l2 -i /dev/video1 [...] /path/to/docroot/playlist.m3u8
    

    您可以在FFmpeg documentation中找到各种HLS参数。

    进一步阅读:

    FFmpeg H.264 Encoding Guide

    FFmpeg Webcam Capture

    【讨论】:

    • 谢谢,虽然这对我不起作用:ffmpeg.org/pipermail/ffmpeg-user/2015-April/026263.html
    • 你设置了编码参数吗?请使用确切的命令更新您的问题。播放列表的大小和它创建的片段数量/保留它们的时间是不同的。使用hls_flags delete_segments 删除旧段。
    • 我的 cmdline 在此处的日志中:ix.io/icO 链接自我之前评论的 ffmpeg 帖子。 :}
    • 啊,就是这样 :) ?您依赖的默认值可能不是一个好主意(就像有人注意到它至少在像素格式上有问题)。看看我回答中的 H.264 编码指南。
    • 长话短说:需要 -pix_fmt yuv420pffmpeg -f v4l2 -i /dev/video0 -pix_fmt yuv420p playlist.m3u8 是完整的工作线。
    【解决方案2】:

    我发现选项 tune=zerolatency 是我需要它来避免拖延。还需要弄清楚如何引入音频。

    gst-launch-1.0 -e v4l2src device=/dev/video1 ! videoconvert ! x264enc tune=zerolatency ! mpegtsmux ! hlssink max-files=5
    

    遗憾的是,我的 Thinkpad X220 在 > 96C 时过热。

    如果能得到 ffmpeg 版本就好了。

    【讨论】:

    • 我添加了 ffmpeg 版本,但您应该更新原始问题以包含上述信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多