树莓派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摄像头 

 

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

sudo vim /etc/modules

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

bcm2835-v4l2

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

sudo raspi-config

 

4.2 测试摄像头

 

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

参考教程:

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

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

raspistill -o test.jpg

 4.3 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播放器进行拉流,这个软件在软件商店有可以直接下载

根据下面的提示拉流 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/605497.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】ALL函数的巧用 以及 排序(order by)巧用 sum(条件表达式) 语法

力扣题 1、题目地址 578. 查询回答率最高的问题 2、模拟表 SurveyLog 表: Column NameTypeidintactionENUMquestion_idintanswer_idintq_numinttimestampint 这张表可能包含重复项。action 是一个 ENUM(category) 数据,可以是 “show”、“answer”…

[排序算法] 如何解决快速排序特殊情况效率低的问题------三路划分

前言 在[C/C]排序算法 快速排序 (递归与非递归)一文中,对于快速排序的单趟排序一共讲了三种方法: hoare、挖坑法、双指针法 ,这三种方法实现的快速排序虽然在一般情况下效率很高,但是如果待排序数据存在大量重复数据,那这几种方法的效率就很低,而为了解决快速排序在这样特殊情况…

XCode Build报错

XCode Build时报以下错误 B/BL out of range 143266484 (max /-128MB) 错误提示表明生成的机器代码太大,超出了限制 需要在XCode工程中添加宏定义,使得生成的可执行文件超过限制 步骤: 在项目设置页面中,选择 “Build Settings…

labelme的安装

首先尝试在(openmmlab)的python3.8的环境下安装(失败)。应该是我环境其他部分不对,和python版本应该没什么关系。(后续,创建新的环境后成功,可直接看最后一部分。) 首先安装是没问题的 pip in…

web学习笔记(十二)

目录 1.运算符 1.1算术运算符 1.2比较运算符(关系运算符) 1.3赋值运算符 1.4逻辑运算符 1.5条件运算符 1.6运算符的优先级 1.7补充 2.流程控制 2.1顺序结构: 2.2分支结构: (1)单分支&#xff08…

浅谈智能照明系统调试阶段节能方案的探究与产品选型

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 【摘要】针对当今智能照明系统调试完成前能源浪费的问题,本文结合工程案例,分析研究了智能照明系统调试阶段的节能方法,提出了采用时间控制器来解决能源及人工浪费等问题的方式。实践证明&a…

深度学习-模型转换_所需算力相关

模型转换相关 tensflow转onnx python -m tf2onnx.convert \--graphdef /root/autodl-tmp/warren/text-detection-ctpn/data/ctpn.pb \--output ./model.onnx --inputs Placeholder:0 --outputs Reshape_2:0,rpn_bbox_pred/Reshape_1:0 pytorch转onnx #!/usr/…

SMTP发送邮件命令行怎么操作?

在现代信息社会中,电子邮件已经成为人们沟通、工作和交流的重要工具。SMTP(Simple Mail Transfer Protocol)作为电子邮件传输的标准之一,通过命令行操作可以更为灵活地进行邮件的发送。本文将介绍如何使用命令行进行SMTP邮件发送&…

基于spark的个性化招聘推荐系统

介绍 本就业推荐系统是一个基于Spark框架的个性化推荐平台,使用Python Django框架、Vue和Element-Plus UI组件库构建而成。该系统通过Scrapy爬虫框架抓取招聘网站的职位数据,用户可以根据关键词查询符合条件的职位信息,同时还提供了基于协同…

ps导出图像自动修改dpi问题的处理

问题 今天修改一个图片,一切都准备就绪后,只要一导出图片,像素不变,但dpi立刻就变成了96dpi,无论怎么修改就是这个值,但我的原值是300dpi,差的不是一点半点。最后在网友的帮助下解决&#xff0…

和vue2对比的Vue3新写法,在vue2基础上快速上手vue3项目

本文的目的,是为了让已经有 Vue2 开发经验的 人 ,快速掌握 Vue3 的写法。 一、Vue3 里 script 的三种写法 首先,Vue3 新增了一个叫做组合式 api 的东西,英文名叫 Composition API。因此 Vue3 的 script 现在支持三种写法&#x…

QT应用篇:QT自定义最小化托盘显示和操作

将应用程序最小化到托盘任务栏中,可以使用Qt框架中的QSystemTrayIcon类。该类允许应用程序在关闭窗口后最小化到系统托盘,保持在后台运行,同时可以显示应用程序图标、添加右键菜单功能以及发送消息通知等。通过学习这些技术,能够为自己的Qt应用程序增加更多的交互性和便利性…

c++:拓扑排序

考研机试:拓扑排序 给定一个 n个点 m条边的有向图,点的编号是 1到 n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。 若一个由图中所有点构成的序列 A满足:对…

关于Js深拷贝的三种方法详细讲解

目录 前言 一、pandas是什么? 二、使用步骤 1.利用函数递归来实现深拷贝 2.利用引入lodash包 3.利用JSON字符串转换 总结 前言 当涉及到JavaScript数据拷贝的时候,深拷贝是一个非常关键的概念。在JavaScript中,对象和数组被认为是引用类型&a…

Linux CentOS 8.x、9.x 系统安装启动某些服务报:libtinfo.so.5、libncurses.so.5 的问题,解决方式

场景: 启动服务 xxx-server start 报如下问题: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory 解决: 1、根据报错内容可以看出,是因为xxx服务在启动的时候…

php实现定时任务

在PHP中,你可以使用不同的方法来实现定时任务。以下是其中两种常见的方法: 使用Cron Job: Cron是一种在Unix和类Unix系统上运行定期任务的工具。你可以通过设置Cron Job来定时运行PHP脚本。以下是一个简单的例子: 首先&#xff0c…

结构体(structure)的认识

前言——————希望现在在努力的各位都能感动以后享受成功的自己! 今天我们来了解了解一下结构体,结构体又有什么奥妙呢,废话不多说,何为结构体呢?------->结构是⼀些值的集合,这些值称为成员变量。结…

每日算法打卡:子矩阵的和 day 8

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例:输出样例: 题目分析示例代码 原题链接 796. 子矩阵的和 题目难度:简单 题目描述 输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数…

即时设计:设计稿与PPT完美结合,让您的创意作品更具影响力

PPT助手 更多内容 在设计领域,将设计稿与PPT结合起来,可以让您的作品更具吸引力和影响力。为了满足这一需求,我们向您推荐一款强大的设计工具,它可以将设计稿导出为PPT文件,支持线上预览和编辑,让您的创意…

2024年大数据不完全预测

人工智能的进步可能是2024年的主要推动力,也凸显出大数据的挑战——如何存储、管理、管理和使用大数据——从未如此紧迫。,因为如果作为基石的数据失控,人工智能就没有意义了。当然反之亦然。 人工智能的进步可能是2024年的主要推动力&#…