树莓派4B摄像头推出流数据

  • 树莓派摄像头调试
    • 排线连接
    • 摄像头权限激活
    • 测试摄像头功能
  • 树莓派原生推http流
    • 使用vlc打开网络串流
  • 树莓派原生推rtsp流
    • 使用vlc打开网络串流
    • 启动异常处理
  • ffmpeg推rtmp流
    • 安装ffmpeg
    • 异常解决
    • 树莓派推流至 rtmp 服务器
    • 使用vlc打开网络串流

树莓派摄像头调试

排线连接

硬件连接时我们首先需要使用树莓派摄像头FFC排线,连接树莓派摄像头与树莓派开发板。其中排线连接的接口被称为CSI(Camera Serial Interface)接口。

树莓派开发板的CSI接口位于USB和以太网接口旁边。我们先将CSI接口的黑色挡板拔开,之后将排线蓝色一端正对以太网接口方向插入,之后按下黑色挡板进行固定。

用同样的方法连接摄像头一端,排线的蓝色端与摄像头背面保持相同方向;注意接线时务必保持电源断开。

摄像头权限激活

先对树莓派进行更新:

sudo apt-get update
sudo apt-get upgrade

修改配置文件:

sudo vim /etc/modules...
bcm2835-v4l2
....

输入指令打开树莓派的配置界面:

sudo raspi-config

找到摄像头选项,打开树莓派的摄像头功能。



打开后使用reboot命令重启树莓派。

执行命令查看摄像头是否接入,detected=0说明摄像头未成功接入,检查先排线或摄像头是否正常:

vcgencmd get_camera...
supported=1 detected=1
...

测试摄像头功能

执行指令,等待几秒钟,然后保存一个图片到当前目录:

raspistill -o new.jpg

获取h264文件:

raspivid -o mykeychain.h264 -t 10000 -w 1280 -h 720

出现下面的异常,请按激活流程排查并检查排线或摄像头是否正常:

mmal mmal_vc_component_create failed to create component 'vc ril camera' (1:ENOMEM)
mmal mmal_component_create_core could not create component 'vc ril camera' (1) mmal Failed to create camera component
mmal main Failed to create camera component
mmal Camera is not detected. Please check carefully the camera module is installed correctly

树莓派原生推http流

执行指令,将流数据推至http流:

sudo raspivid -o - -rot 180 -t 0  -w 640 -h 480 -fps 30|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264
  • -rot: 图像旋转180(我添加了这个,自己看情况是否添加);
  • -t:延时
  • -w:输出视频宽度
  • -h:输出视频高度
  • -fps:输出视频帧数
  • access:http协议传输
  • dst:目标端口(输出端口)
  • demux:编码格式

使用vlc打开网络串流

树莓派原生推rtsp流

执行指令,将流数据推至http流:

sudo raspivid -o - -rot 180 -t 0 -fps 30|cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://10.122.4.202:8554/}' :demux=h264

使用vlc打开网络串流

启动异常处理

pi@raspberrypi:~ $ raspivid -o - -t 0 |cvlc -v stream:///dev/stdin --sout '#rtp{sdp=rtsp://10.122.4.202:8554/}' :demux=h264
VLC media player 3.0.12 Vetinari (revision 1.0.6-1618-g917488b78)
[0085b9d8] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
[0087bfe8] dummy interface: using the dummy interface module...
[b2400a60] stream_out_rtp stream out warning: "10.122.4.202" RTSP host might be ignored in multiple-host configurations, use at your own risks.
[b2400a60] stream_out_rtp stream out: Consider passing --rtsp-host=IP on the command line instead.
[b2402e90] main stream error: unknown query 0x30e in demux_vaControlHelper

指令参数错误导致

cvlc -v # 错误
cvlc -vvv # 正确

ffmpeg推rtmp流

流程是通过ffmpeg将树莓派采集的视频数据转成rtmp的流数据,并推送到nginx-rtmp服务器上。

安装ffmpeg

顺序执行以下命令(具体的下载目录和安装目录按自己实际需要进行修改,sudo make 这一步耗时较长):

cd <你的软件下载目录>
sudo apt-get update
sudo apt-get install libx264-devwget http://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2
sudo tar jxvf ffmpeg-4.1.tar.bz2cd ffmpeg-4.1/sudo ./configure --prefix=/opt/ffmpeg --enable-shared --enable-pthreads --enable-gpl  --enable-avresample --enable-libx264 --disable-yasm
sudo make
sudo install

最终完成后,执行 ffmpeg 命令,会出现下面的提示:

异常解决

  • 问题一: 执行 ffmpeg,报命令无效

    解决办法:把安装目录下的 /opt/ffmpeg/bin/ffmpeg 文件复制到 /usr/bin 当中,实际的安装目录见 ./configure 的 --prefix 配置项

  • 问题二:报错:ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory

    解决办法:

    sudo vim ~/.bashrc
    

    复制下面内容粘贴至文件最后(FFMPEG_HOME 的值为实际的 ffmpeg 安装路径),然后保存退出:

    export FFMPEG_HOME=/opt/ffmpeg
    export PATH=$FFMPEG_HOME/bin:$PATH
    export  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FFMPEG_HOME/lib:/usr/local/lib
    

    然后执行命令:

    source ~/.bashrc
    

树莓派推流至 rtmp 服务器

执行下面指令,将流数据推到rtmp服务器:

raspivid -w 640 -h 480 -b 15000000 -t 0 -a 12 -a 1024 -a "CAM-1 %Y-%m-%d %X" -ae 18,0xff,0x808000 -o - | ffmpeg -re -i - -s 640x480 -vcodec copy -acodec copy -b:v 800k -b:a 32k -f flv rtmp://<自己云服务器的公有IP地址>/videotest

使用vlc打开网络串流

树莓派4B摄像头推出流数据相关推荐

  1. 树莓派4B摄像头的详细使用教程(拍照+录像+监控)

    树莓派4B摄像头的详细使用教程(拍照+录像+监控) 本篇博文将介绍树莓派摄像头是如何在树莓派开发板上从安装到使用的,博主过程中参考了许多帖子,现将整理的比较全面的过程分享出来,供大家参考使用. 排线连 ...

  2. 树莓派4B摄像头安装和使用方法详解(支持拍照,录像,实时监控)

    接上篇,树莓派网络已经调通,开机通过ssh登录树莓派: step1:硬件安装 这里采用的官方配套CSI接口摄像头,采用OV5647模组,定焦镜头,支持500万像素, 160度广视角: 注意:安装任何硬 ...

  3. 树莓派4b摄像头使能

    接着前面的写,我用的是Ubuntu mate 20.4. 假如是 raspberry pi系统,直接进行第4步即可. 首先把摄像头安装在板子上.也没什么介绍的. 然后再终端安装raspi-config ...

  4. 树莓派CSI摄像头的使用及OpenCV的简单测试

      拿出了之前拿来做BLE Mesh的Provisioner的树莓派4B,不知不觉已经开始吃灰了,这可还行?于是乎从某宝淘来了10几块RMB的树莓派专用的摄像头就开始捣鼓起来了,说实话不愧是10几块的 ...

  5. 树莓派3B摄像头的详细使用教程(拍照+录像+监控)

    树莓派4B摄像头的详细使用教程(拍照+录像+监控) 本篇博文将介绍树莓派摄像头是如何在树莓派开发板上从安装到使用的,博主过程中参考了许多帖子,现将整理的比较全面的过程分享出来,供大家参考使用. 排线连 ...

  6. 树莓派4b + python3 + pyzbar + opencv + 摄像头 扫描识别二维码(寻找最大的二维码)

    前言 最近需要做一个扫码乘车的功能,于是使用树莓派的摄像头扫描二维码来做一个demo . 网上有部分人用的是zbar这个库,但是我安装后,发现并不能在Python3上使用,这就有点不太好了.经过我的多 ...

  7. 树莓派4B与智能涡轮流量计通过RS485(modbus RTU协议)收发数据(一)

    目标:使用树莓派及CAN HAT扩展板读取智能涡轮流量计(RS485通讯改装,使用modbus-RTU协议)的各项测量数据. 由于是初次学习,对智能仪表以及树莓派串口通信等知识比较陌生,在此对实验过程 ...

  8. 已 树莓派4b ros 系统 网盘_树莓派推出8GB内存版4B 搭载64位操作系统

    树莓派(Raspberry Pi)微型计算机是备受全球开发者和极客们欢迎的产品,去年6月发布的Raspberry Pi 4 Model B距今已近一年,近日树莓派推出了8 GB内存的Raspberry ...

  9. 通过ffmpeg实时读取宇视摄像头的高清帧流数据,并保存4张图片进行4合一照片的生成。

    通过ffmpeg实时读取宇视摄像头的高清帧流数据,并保存4张图片进行4合一照片的生成. FFmpeg视频解码过程 通常来说,FFmpeg的视频解码过程有以下几个步骤: 注册所支持的所有的文件(容器)格 ...

最新文章

  1. NOIP 2017 d2t2 70points
  2. 10款WordPress的插件让你的网站的移动体验
  3. 启明云端分享| IDO-SOM2D01-V1-2GW核心板SPI调试总结
  4. 【附10】kibana创建新的index patterns
  5. mysql文本自动递增_mysql-如何创建自动递增的字符串?
  6. 验证规则构建神器 FluentValidation.md
  7. .NET:如何让线程支持超时?
  8. runtime简单的使用解决实际问题(交换方法)
  9. 谷歌修复4个已遭利用的安卓 0day
  10. mysql建表的字段类型和约束条件
  11. 学习STM32F769DK-OTA例程之APP中断向量表重映射
  12. Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参
  13. paip.URL跳转漏洞欺骗用户名密码
  14. vue 字符存在_vue中如何渲染字符串,字符串是组件类型的
  15. 模拟卷Leetcode【普通】015. 三数之和
  16. DVM和ART的区别详解
  17. [Vuforia]二.3D物体识别
  18. 330pics-shell scripts-second
  19. 简述API HOOK技术及原理
  20. 没有期刊申请清华博士_清华大学博士毕业不要求发表论文?大家不要再误读了......

热门文章

  1. 网络渗透作业之 wireshark抓包校园网
  2. 金闪PDF编辑器:如何更改PDF文件中的字体?
  3. 六自由度机械臂基于力传感器的末端力控及拖动示教
  4. 最详细的VGG模型理解
  5. java 中文转成_Java将中文转换成unicode字符。
  6. php使用汉字编码,php汉字编码转换的方法
  7. 电感,电容的单位换算
  8. 模型转换、模型压缩、模型加速工具汇总
  9. 计算机的存储规则【小白进】
  10. python-ctypes用法个人总结