关于我用树莓派在B站直播这件事儿
一、写在前面
为什么要开直播呢?
由于本人热衷于花草鱼龟,闲来无事总想看看,龟缸现在已经比较稳定了,但是平时基本也是无时间进行观查,遂决定对龟缸进行直播,正好手中有一闲置树莓派
直播效果如下:

二、直播方案
2.1 所需设备:
树莓派3/4代均可
树莓派摄像头(选用CSI接口的摄像头,淘宝15-25RMB, 如果晚上也想看到,就买个带夜视功能的(记得加红外灯,否则一塌糊涂),40元左右)

我买的是这种带有夜视功能的,晚上的画面有点儿~~
2.2 系统配置及环境搭建
系统:官方原版系统(桌面版)
系统安装完毕后需要开启CSI摄像头模块、系统SSH功能以及VNC服务。
开启SSH功能以后就可以无屏操作树莓派了,开启VNC服务可以无屏进行直播操作。
最简单的开启SSH功能的方法,树莓派断电取出SD卡,插在电脑上,在boot分区根目录建立一个SSH(无后缀)的文件。
之后开机执行
sudo raspi-config
命令,进入树莓派的系统配置页面

选择第三项Interface Options进入

选择P1 Camera,一路选择“是”“确定”,开启树莓派摄像头模块
软件:ffmpeg(用于合成视频并推流)
执行
sudo apt install ffmpeg
现在仍然有部分教程说要编译安装,以前ffmpeg这个软件因为没在官方的ppa中,所以需要编译安装,但那都是多年前的事情了。建议大家直接apt安装。
VNC(用于树莓派进行局域网内无屏操作)
执行
vncserver
开启树莓派的VNC服务,用于树莓派异常停机后的重新开启推流服务。每次断电重启后都需要手动执行一次该命令。
代码执行完毕后会显示树莓派VNC服务的端口号,后面会用到。
VNC客户端需要自行下载,无需配置,将树莓派的IP地址加端口号输入即可连接。

以上步骤执行完毕以后,系统就算配置完成了,接下来就可以安装树莓派及摄像头模组了。
树莓派的网络连接建议使用有线连接,无线网络也可以使用,但是不间断的上传可能会造成无线路由器亚历山大,导致全家断网,所以慎重使用无线网络。
1080P30fps的推流对于上传带宽的消耗在500-600KB/s。(注意B的大小写,相关转换关系这里就不再赘述了)
2.3 相关命令
进入使用VNC登录树莓派系统桌面,点击打开终端,输入如下命令:
raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | ffmpeg -re -stream_loop -1 -i "/home/pi/music/你喜欢的音乐.mp3" -f h264 -i - -vcodec copy -acodec aac -b:a 192k -f flv "你的rtmp地址/你的直播码"
raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000这个命令是用raspivid从摄像头流中以每秒30帧读取数据,网络在线传播推荐使用30帧,有兴趣可以去B站看Tim的介绍。
然后通过管道符将视频数据传送给ffmpeg, ffmpeg将视频和音频编码后发送到rtmp服务器。这里需要注意的是rtmp的地址及直播码需要手动获取添加。
获取rtmp地址及直播码,使用过直播的应该都知道,此步骤需要在B站网页端进行。
代码中带汉字的路径表示背景音乐在你树莓派中的位置,树莓派中是没有这个文件的,需要自己去增加,找到一个你喜欢的mp3格式的背景音乐,将文件名修改为“*.mp3”,放到上述目录即可,*可以是任意名称。这里需要注意一下music这个文件夹的字母大小写,需要保持一致。
注意:如果你的摄像头画面存在翻转,可以在raspivid命令后加上"-rot 180"命令对画面进行180度翻转。
三、总结
整一个过程还是很有乐趣的,最难的地方并不是代码,而是我的摄像头应该放在哪儿,为此我还专门买了一根30cm长的摄像头排线如果有3D打印机可以自行打印一个摄像头支架,手动真的挺难搞的。
最后的最后!请大家理性讨论,本人的所有观点及经验仅代表个人的纯主观感受,如有其他见解欢迎评论区交流,无脑喷的话,还请轻喷。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

值友7736933919
校验提示文案
reimu1376666
校验提示文案
消逝的青春91
校验提示文案
值友7736933919
校验提示文案
reimu1376666
校验提示文案
消逝的青春91
校验提示文案