一种创建 HLS 流的方式

One liner to create HLS stream

带有 HLS 或 DASH 的 IIUC,我可以创建一个清单并直接从我的 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

有什么想法吗?

我发现选项 tune=zerolatency 是我需要的选项。还需要弄清楚如何引入音频。

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

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

最好能得到 ffmpeg 版本。

  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