利用树莓派搭建直播平台,推送至B站24小时直播(支持文件)

鸣谢:徐立伟的博客

情景介绍:目前,我已经打开了两个坦克。一个是用来饲养锦鲤的沼泽过滤器,另一个是用来饲养海龟的泥浆池。由于平时几乎没有时间观察,他决定现场直播龟罐。他碰巧手里拿着一个闲置的覆盆子馅饼3B,所以他搜索了一下互联网,买了一台CSI摄像机来启动直播计划。

现场直播效果如下:

直播效果如下:

项目所需配件

树莓派3/4代均可

树莓派摄像头(选用CSI接口的摄像头,淘宝15-25RMB, 如果晚上也想看到,就买个带夜视功能的(记得加红外灯,否则一塌糊涂),40元左右)

系统配置及环境搭建

系统:官方原版系统(桌面版)

系统安装完毕后需要开启CSI摄像头模块、系统SSH功能以及VNC服务。

开启SSH功能以后就可以无屏操作树莓派了,开启VNC服务可以无屏进行直播操作。

最简单的开启SSH功能的方法,树莓派断电取出SD卡,插在电脑上,在boot分区根目录建立一个SSH(无后缀)的文件。

之后开机执行

命令,进入树莓派的系统配置页面

选择第三项Interface Options进入

选择P1 Camera,一路选择“是”“确定”,开启树莓派摄像头模块

软件:ffmpeg(用于合成视频并推流)

执行

现在仍然有部分教程说要编译安装,以前ffmpeg这个软件因为没在官方的ppa中,所以需要编译安装,但那都是多年前的事情了。建议大家直接apt安装。

VNC(用于树莓派进行局域网内无屏操作)

执行

开启树莓派的VNC服务,用于树莓派异常停机后的重新开启推流服务。每次断电重启后都需要手动执行一次该命令。

代码执行完毕后会显示树莓派VNC服务的端口号,后面会用到。

VNC客户端需要自行下载,无需配置,将树莓派的IP地址加端口号输入即可连接。

以上步骤执行完毕以后,系统就算配置完成了,接下来就可以安装树莓派及摄像头模组了。

树莓派的网络连接建议使用有线连接,无线网络也可以使用,但是不间断的上传可能会造成无线路由器亚历山大,导致全家断网,所以慎重使用无线网络。

1080P30fps的推流对于上传带宽的消耗在500-600KB/s。(注意B的大小写,相关转换关系这里就不再赘述了)

相关命令

进入使用VNC登录树莓派系统桌面,点击打开终端,输入如下命令:

raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000这个命令是用raspivid从摄像头流中以每秒30帧读取数据,然后通过管道符将视频数据传送给ffmpeg, ffmpeg将视频和音频编码后发送到rtmp服务器。这里需要注意的是rtmp的地址及直播码需要手动获取添加。

获取rtmp地址及直播码,使用过直播的应该都知道,此步骤需要在网页端进行。

代码中绿色的路径表示背景音乐的位置,树莓派中是没有这个文件的,需要自己去增加,找到一个你喜欢的mp3格式的背景音乐,将文件名修改为“*.mp3”,放到上述目录即可,*可以是任意名称。这里需要注意一下music这个文件夹的字母大小写,需要保持一致。

注意:如果你的摄像头画面存在翻转,可以在raspivid命令后加上”-rot 180″命令对画面进行180度翻转。

资源下载: