如何使用罗技C920R通过Shell脚本实现YouTube直播推流?
罗技C920R 推流YouTube的优化脚本
我帮你整理并修正了原脚本里的语法问题,同时优化了参数配置,确保推流稳定且符合YouTube的要求,完整脚本如下:
#!/bin/sh # 推流配置变量 YOUTUBE_URL="rtmp://a.rtmp.youtube.com/live2" KEY="xxxx-yyyy-zzzz" # 提前设置摄像头分辨率(罗技C920R支持硬件H.264编码) v4l2-ctl --device=/dev/video0 --set-fmt-video=width=1280,height=720 # 执行ffmpeg推流 ffmpeg \ -ar 44100 -ac 2 -f alsa -i hw:1,0 \ -itsoffset 0.5 -f v4l2 -codec:v h264 -framerate 30 -video_size 1280x720 -i /dev/video0 \ -copyinkf -codec:v copy -codec:a aac -ab 128k -g 10 -strict experimental \ "${YOUTUBE_URL}/${KEY}"
关键配置说明:
- 摄像头预配置:用
v4l2-ctl强制设置C920R输出1280x720分辨率,避免ffmpeg自动适配带来的性能损耗,同时匹配后续推流的视频尺寸。 - 变量规范化:修正了原脚本变量赋值的语法错误(去掉
=两边的空格),后续修改推流地址或密钥只需调整顶部变量,更易维护。 - 音频优化:指定ALSA设备
hw:1,0捕获音频,转码为YouTube兼容的AAC编码(128kbps码率),44100Hz采样率是直播音频的标准配置,平衡音质与带宽。 - 硬件编码复用:C920R自带硬件H.264编码芯片,用
-codec:v copy直接复用摄像头输出的编码流,大幅降低CPU占用;-copyinkf保留输入流的关键帧信息,避免推流初期的卡顿。 - 音画同步:
-itsoffset 0.5给视频添加0.5秒延迟,用来对齐音频(如果你的音频比视频慢,可以尝试负数,比如-itsoffset -0.3)。 - 关键帧间隔:
-g 10设置关键帧间隔为10帧(对应30fps下约0.33秒),符合YouTube直播的推荐标准,提升观众端的播放流畅度与切换清晰度。
内容的提问来源于stack exchange,提问作者saitoib
相关产品推荐
相关产品推荐

