树莓派3B+ /+ CSI摄像头 + FFmpeg + SRS 实现直播推流

简介:

手头有一个树莓派3B+ 和一块CSI摄像头,想要实现一个推拉流直播的效果。

所需材料:开发板(我用的是树莓派3B+)、CIS摄像头、云服务器(用来搭建SRS服务器)

具体实现思路:

使用树莓派+CSI摄像头来做画面采集,然后使用FFmpeg推流到SRS云服务器上,然后用户可以拉取SRS服务器上的视频流。

具体步骤:

1.树莓派系统烧录

我之前用树莓派官方的烧录工具进行烧录,由于树莓派官方提供的镜像较新,存在的问题较多(可能是我比较菜吧)。比如对CSI摄像头的支持、以及不在支持raspistill和raspivid。所以我决定重新烧老一点的系统(我把我的树莓派镜像放到了下面)。

我的镜像是这个:2023-05-03-raspios-bullseye-armhf-full.img

镜像网盘地址:

链接:https://pan.baidu.com/s/1IgC4h5TGfSpd26QaNNqGKw?pwd=gk8a 
提取码:gk8a

推荐一个比较好的烧录工具

烧录工具网盘地址:

链接:https://pan.baidu.com/s/11bK0YVrZMx5EwDTbU-hIHA?pwd=81ik 
提取码:81ik

2.树莓派安装FFmpeg

树莓派是自带ffmpeg的,我们可以使用命令查看ffmpeg的版本:

ffmpeg -version

3.搭建SRS流媒体服务器

搭建SRS流媒体服务器需要用到云服务器,只有将SRS流媒体服务器搭建在云服务器上,才能让所有人都能拉取到你的视频流。如果你没有云服务器也没事,可以在开发板上搭建SRS流媒体的局域网服务器,在同一个局域网内的所有用户的是可以拉取到视频流的。如果开发板做了内网穿透,那么同样所有人都可以拉取视频流。

3.1 SRS流媒体服务器的搭建

搭建流媒体服务器查看我的另一篇文章:

http://t.csdnimg.cn/UJ3IV

4.使用FFmpeg推流到SRS服务器

4.1 查看video device0设备

ls -al /dev

你video0就是我们的CSI摄像头 

 树莓派3B+ /+ CSI摄像头 + FFmpeg + SRS 实现直播推流_第1张图片

如果没有可以重新插一下摄像头,如果还是没有说明没有添加摄像头的驱动程序.ko文件和对应的raspiberry B3+的硬件使能 

sudo vim /etc/modules

然后添加这段话到最后一段

bcm2835-v4l2

修改Raspberry的启动配置使能项:

sudo raspi-config

树莓派3B+ /+ CSI摄像头 + FFmpeg + SRS 实现直播推流_第2张图片

然后重启,在查看是否存在video0  

参考教程:

树莓派摄像头使用教程 (spotpear.cn)

没问题的话就测试一下这个摄像头,看看能不能进行拍照截图

raspistill -o test.jpg

 4.2 FFmpeg推流

ffmpeg -f v4l2 -framerate 30 -video_size 1280x720 -i /dev/video0 -c:v libx264 -preset ultrafast -tune zerolatency -b:v 2M -f flv rtmp://your_streaming_server_address

最后来看一下效果,我推流的是我自己电脑的画面

                拉流画面

我使用手机上的软件MX播放器进行拉流,这个软件在软件商店有可以直接下载

根据下面的提示拉流 

树莓派3B+ /+ CSI摄像头 + FFmpeg + SRS 实现直播推流_第3张图片

树莓派3B+ /+ CSI摄像头 + FFmpeg + SRS 实现直播推流_第4张图片

你可能感兴趣的:(服务器,FFmpeg,SRS,ffmpeg,实时音视频,linux)