【问题标题】:How to livestream a webcam to YouTube with FFmpeg?如何使用 FFmpeg 将网络摄像头直播到 YouTube?
【发布时间】:2019-12-23 16:27:08
【问题描述】:

我想将我的网络摄像头的直播发送到 YouTube。我可以关注YouTube's guide 直到第 8 步。“流连接”告诉我“没有数据”并且“上线”按钮仍然无法点击。这种情况的截图可以在

看到

作为编码软件,我计划使用 FFmpeg,因为它可以从目标平台运行,即带有 Raspbian 的 Raspberry Pi。使用了video4linux2 支持的 USB 网络摄像头。

FFmpeg's wiki 表明流式传输文件可以通过以下方式完成:

ffmpeg -re -i input.mkv \
-c:v libx264 -preset veryfast -maxrate 3000k \
-bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 \
-ar 44100 -f flv rtmp://live.twitch.tv/app/<stream key>

我通过以下方式修改了这个命令: 1. 它从带有-f v4l2 -i /dev/video0 的网络摄像头获取视频流。 2. 不播放-an的任何音频。 3. 广播到YouTube的RTMP服务器rtmp://a.rtmp.youtube.com/live2/&lt;stream key&gt;

该命令的最终版本是:

RTMP_URL="rtmp://a.rtmp.youtube.com/live2"
STREAM_KEY="secr-etse-cret-secr"
OUTPUT=$RTMP_URL/$STREAM_KEY
ffmpeg -re -f v4l2 -i /dev/video0 \
-c:v libx264 -preset veryfast -maxrate 3000k \
-bufsize 6000k -pix_fmt yuv420p -g 50 -an \
-f flv $OUTPUT

当我运行此命令时,我预计“流连接”会在几秒钟后更改为“无数据”以外的其他内容,但这不会发生。

我尝试将流录制到本地文件:

ffmpeg -re -f v4l2 -i /dev/video0 \
-c:v libx264 -preset veryfast -maxrate 3000k \
-bufsize 6000k -pix_fmt yuv420p -g 50 -an \
-f flv test.flv

这很好用。这向我表明,问题在于让 YouTube 接受视频流。

【问题讨论】:

  • 我认为 YouTube 需要音频。
  • 根据 szatmary 的建议,您需要添加音频。您可以使用 anullsrc 过滤器执行此操作:ffmpeg -re -f v4l2 -i /dev/video0 -re -f lavfi -i anullsrc ...

标签: ffmpeg youtube live-streaming


【解决方案1】:

以下代码在 Windows 上运行良好,您可以根据需要进行调整

ffmpeg -loglevel debug -threads:v 2 -threads:a 8 -filter_threads 2 -thread_queue_size 512  -f dshow -i video="HP Wide Vision HD" -f dshow -i audio="Microphone Array (Realtek Audio)" -pix_fmt yuv420p -c:v libx264 -qp:v 19 -profile:v high -rc:v cbr_ld_hq -level:v 4.2 -r:v 60 -g:v 120 -bf:v 3 -refs:v 16 -f flv rtmp://youtube_stream_url/stream_key

【讨论】:

    猜你喜欢
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2013-01-16
    • 1970-01-01
    • 2016-02-14
    • 2020-04-20
    • 2016-05-10
    相关资源
    最近更新 更多