【发布时间】: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/<stream key>
该命令的最终版本是:
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