如何使用 Raspberry Pi 在 YouTube 上进行流式传输?

How to stream on YouTube using a Raspberry Pi?

所以我正在尝试使用 raspberry pi 在 YouTube 上进行流式传输。这个想法是一个 raspberry pi 用于流式传输连接的网络摄像头,另一个用于显示流,有点像监控摄像头。 raspberry pi 目前都在使用 Raspbian。

我可以在 Raspberry Pi 上直接流式传输到 YouTube 吗?

您可以使用任何 Pi 支持的 RTMP/Flash 编码器来发布 YouTube 直播活动。一个例子是 ffmpeg 其中 can be compiled on Raspbian.

使用 guide. You can find the various encoder settings here 创建您的 YouTube 直播活动。

一切准备就绪后,您就可以开始直播了。对于 640x480@25 700k 视频流,命令类似于:

ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 -c:v libx264 -b:v 700k -maxrate 700k -bufsize 700k -an -f flv rtmp://<youtube_rtmp_server/<youtube_live_stream_id>

"So is it possible for me to stream directly to YouTube on a Raspberry Pi?"

。但是您将需要进行一些配置,并根据您的项目需要获得不同的硬件。

对于我的项目,一个流式传输到 youtube 的昼夜门 "security camera",我选择了一个 Raspberry Pi 零 W 运行 ning raspbian(无头)和一个具有自动红外切换功能和红外灯的摄像头模块。

我已经编辑了 raspbian 图像,所以 wificamera 模块的所有配置 interfaces、代码和 dependencies 我需要的是预先安装的,所以我可以只刷一个 sd 卡,在 pi+camera+powersupply 设置中拍打它做它的事。

因此,要让这个答案有所帮助,您需要对 FFMPEG 进行大量 研究知道它是什么了解它的作用,并将它安装到您的主板上...您应该能够 运行一些测试让 FFMPEG 从您的相机中吐出一段 10 秒长的视频。如果你还没有读到那一步,我就不会费心再读我的废话了,因为事情即将变得具体.

所以,你的开发板已经在线,你可以在网络上看到它,它有互联网,它有 ffmpeg,它已经准备好了。

这是我用来开始直播的ffmpeg "stream command":

raspivid -o - -t 0 -vf -hf -fps 60 -b 12000000 -rot 180 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -i - -vcodec copy -acodec aac -ab 384k -g 17 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/SESSION_ID

我通过调整你看到的每个参数,一个一个地调整不同的组合,得出上面的 "stream command"我最终得到了一个非常清晰的 1080p 流,除了我的设置中偶尔出现的 wifi 延迟之外,根本没有缓冲问题。您将需要对每个参数的作用进行大量研究才能使事情恰到好处,相信我,一开始弄清楚什么是什么将是一件痛苦的事情。当涉及到这些 FFMPEG 命令时,我会潜伏在 Whosebug 和其他资源周围,只是四处看看你可以从你的设置中得到什么。

要测试此 "stream command" 或您找到的任何其他作品是否适合您,只需 将最后的 SESSION_ID 更改为您的流密钥 并在控制台中 运行 它。

获得满意的输出后,请自行确定如何触发相机开始流式传输,如果您希望它在电路板准备好开始发送数据后立即开始记录,您可以通过将 "stream command" 放入 /etc/rc.local 来完成此操作,它会尽快 运行 该命令它可以。

对于我的项目,我使用由太阳能电池板充电的 18650 电池作为电源,所以我必须注意我使用的功率,所以我写了一些 NodeJS 程序监视器。

好了,到此为止吧。希望这些能对外面的人有所帮助,干杯。

音频正常!这在 raspberry pi 4 上对我有用,带有 rbp v1.3 相机和便宜的 USB 音频接口。还获取您可以在 alsamixer 中设置的默认音频:

raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | ffmpeg -f alsa -ac 1 -ar 44100 -i default -acodec pcm_s16le -f s16le -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 60 -strict -2 -f flv rtmp://<destination/streamkey>