文档章节

树莓派直播

枫TI
 枫TI
发布于 2017/06/09 23:04
字数 1277
阅读 139
收藏 5
点赞 0
评论 0

树莓派实现直播分两种方式

1.通过USB摄像头

2.通过CSI(树莓派摄像头)

今天我们实现通过CSI来实现直播功能,但是也介绍USB摄像头实现直播的方案。

mjpg-streamer

支持CSI(树莓派官方摄像头)

开源项目github:mjpg-streamer

效果图

基础知识:cmake和make区别

实现过程

1.下载mjpg-streamer

wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip

2.Building & Installation

sudo install cmake libjpeg8-dev 

3.解压master.zip

unzip master.zip

解压后目录
drwxr-xr-x  3 pi   pi       4096 Apr 12 05:24 mjpg-streamer-master/

4.编译及安装mjpg_steamer

cmake  指向CMakeLists.txt所在的目录,例如cmake .. 表示CMakeLists.txt在当前目录的上一级目录。cmake生成很多编译的中间文件以及makefile文件,所以一般新建一个新的_build,专门用来编译

cd mjpg-streamer-experimental
mkdir _build
cd _build
cmake ..
make
sudo make install

make根据生成makefile文件,编译程序

说明:

make就是make all,编译用的--仅编译,具体编译了那些文件要看你的Makefile;

make install,编译并安装(比如安装到/usr/bin目录下,然后可以直接使用。因为/usr/bin只有管理员才能向里面添加文件,所以通常要加sudo)

5./etc/default/tmpfs:

# mount /tmp as a tmpfs.  Defaults to no; set to yes to enable (/tmp
# will be part of the root filesystem if disabled).  /tmp may also be
# configured to be a separate mount in /etc/fstab.
RAMTMP=yes

6.Reboot

7.raspistill -tl 500 -t 999999 -vf -w 960 -h 720 -o /tmp/mjpg/test.jpg -n -q 50&

8.mjpg_streamer -i 'input_file.so -f /tmp/mjpg -r'

9.启动mjpg_streamer

pi@xxxxxx:~/mjpg-streamer-experimental$ mjpg_streamer
MJPG Streamer Version.: 2.0
 o: www-folder-path......: disabled
 o: HTTP TCP port........: 8080
 o: HTTP Listen Address..: (null)
 o: username:password....: disabled
 o: commands.............: enabled
bind: Address already in use

修改端口号:默认是8080端口,由于没找到配置文件,也是很无奈!(这是我一开始理解的,把mjpg_stream当作一个简单服务器了,实际上mjpg_stream是一款命令行程序,可通过mjpg_stream命令 - p操作修改端口号)

通过源码修改端口号,重新编辑安装

编辑器Visual Studio Code

/mjpg_streamer-experimental/output_http/output_http.c

int output_init(output_parameter *param, int id)
{
    int i;
    int  port;
    char *credentials, *www_folder, *hostname = NULL;
    char nocommands;

    DBG("output #%02d\n", param->id);

    port = htons(8099);
    credentials = NULL;
    www_folder = NULL;
    nocommands = 0;

    param->argv[0] = OUTPUT_PLUGIN_NAME;

    /* show all parameters for DBG purposes */
    for(i = 0; i < param->argc; i++) {
        DBG("argv[%d]=%s\n", i, param->argv[i]);
    }
}

 

10.http://<raspberrypi>:8099/

11.命令行启动服务

cd到~/mjpg-streamer-master/mjpg-streamer-experimental

pi@xxxxxx:~/mjpg-streamer-master/mjpg-streamer-experimental$ mjpg_streamer -i "input_raspicam.so" -o "output_http.so -w ./www"
MJPG Streamer Version.: 2.0
 i: fps.............: 30
 i: resolution........: 640 x 480
 i: camera parameters..............:

Sharpness 0, Contrast 0, Brightness 50
Saturation 0, ISO 0, Video Stabilisation No, Exposure compensation 0
Exposure Mode 'auto', AWB Mode 'auto', Image Effect 'none'
Metering Mode 'average', Colour Effect Enabled No with U = 128, V = 128
Rotation 0, hflip No, vflip No
ROI x 0.000000, y 0.000000, w 1.000000 h 1.000000
 o: www-folder-path......: ./www/
 o: HTTP TCP port........: 8099
 o: HTTP Listen Address..: (null)
 o: username:password....: disabled
 o: commands.............: enabled
 i: Starting Camera
Encoder Buffer Size 81920

启动脚本方式

vi live.sh

脚本内容

cd ~/mjpg-streamer-master/mjpg-streamer-experimental

mjpg_streamer -i "input_raspicam.so" -o "output_http.so -w ./www"

执行脚本

sh live.sh

12.视频很卡顿的情况

原因在于mjpg-streamer/mjpg-streamer-experimental/plugins/input_raspicam/input_raspicam.c

static int fps = 5;//每秒5帧

修改为fps = 30;//每秒30帧

static int fps = 30;
static int width = 640;
static int height = 480;
static int quality = 85;
static int usestills = 0;
static int wantPreview = 0;
static int wantTimestamp = 0;
static RASPICAM_CAMERA_PARAMETERS c_params;

13.重新编译安装

查看步骤4编译及安装mjpg_steamer

14.更加流畅

/etc/default/tmpfs:

# mount /tmp as a tmpfs.  Defaults to no; set to yes to enable (/tmp
# will be part of the root filesystem if disabled).  /tmp may also be
# configured to be a separate mount in /etc/fstab.
RAMTMP=yes

Reboot.

raspistill -tl 500 -t 999999 -vf -w 960 -h 720 -o /tmp/mjpg/test.jpg -n -q 50&

mjpg_streamer -i 'input_file.so -f /tmp/mjpg -r'

http://<raspberrypi>:8080/?action=stream

aptitude——详细查看已安装或可用的软件包。

sudo aptitude

 

用树莓派官方摄像头做丝滑般流畅的监控!

raspistill

支持CSI(树莓派摄像头)

网页刷新照片方式,很low很low的方式,类似于播放幻灯片

["raspistill", "-t", "0.1/1/5", "-w", "300", "-h", "500" ]

说明:

红色标注参数,只能是正整数,否则出现不可控,导致进程raspistill一直占用相机拍照。导致其它程序无法使用相机。

-t, --timeout : 拍照和关闭时的延时指定,未指定时默认是5s

参考文章:raspberryPi摄像头命令行软件raspistill帮助文档

nginx-rtmp-module

支持USB摄像头,不支持CSI(树莓派官方摄像头)

nginx-rtmp-module

情况一:已安装Nginx,重新把rtmp-module编译Nginx

参考文章:如何升级Nginx到最新稳定版

参考文章:已安装nginx动态添加模块

参考文章:nginx 1.9.5 ./configure: error: invalid option "–with-http_spdy_module"

情况二:直接把rtmp-module与Nginx编译,安装Nginx

 

遇到的问题:

install FFmpeg

sudo apt-get install ffmpeg

树莓派操作系统没有ffmpeg程序

解决方案<<树莓派摄像头实时监控>>该文章中的提示:

"你还需要 libav-tools,它是一个 ffmpeg 分支。数月之前,Debian用libav-tools取代了了ffmpeg"

vlc

支持CSI (树莓派官方摄像头)

基于树莓派的专用摄像头实时监控

 

Motion

支持USB摄像头

参考文章:树莓派摄像头实时监控

参考文章:打造树莓派HTML5实时监控

参考文章:树莓派使用USB摄像头和motion实现监控

 

 

 

© 著作权归作者所有

共有 人打赏支持
枫TI
粉丝 13
博文 84
码字总数 42755
作品 2
东城
树莓派+一根网线直连笔记本电脑

用网线直连电脑,不经过路由器。这个方法最大的特点用最少的工具玩树莓派。 一、材料:树莓派一部、网线一根,笔记本电脑一台。 1、树莓派:带供电系统和烧好Raspbian系统的SD卡; 2、网线:...

maweitao
2014/07/31
0
1
树莓派配置无线网卡连接WIFI

在前面的文章中介绍了使用串口与树莓派连接的方法,但是串口连接不太便捷,因此本篇文章介绍wifi连接树莓派的方法。 无线网卡 树莓派2没有自带wifi模块,需要另外购买一个usb wifi模块。我使...

刘语彤
2015/08/04
0
0
远距离赏秋香,DIY树莓派望远镜

编者注:本项目来自Instructables,原作者为joshdont,转载请注明。 就像很多人说的,创客做的东西很多时候并没有什么用处,你甚至已经可以在市面上买到更便宜、更轻巧、功能更强大的成品,还...

吴攀
2015/12/07
0
0
Banana Pi VS Raspberrry Pi,是敌是友?

现在开源硬件,已经成为了一种潮流,很多开源硬件项目不断推出各自的开源硬件产品. 市场上主流的有: raspberrry Pi, arDuino,Pcduino, CubieBoard, 在各自的发展过程中,大家都在维护各自的社区...

sinovoip
2014/07/31
0
0
树莓派摄像头VLC网络监控

备忘 树莓派有网口,又有摄像头可以用,当然不能浪费资源,下面我就用红外摄像头来做个昼夜均可使用的摄像头监控~ 连接好树莓派的CSI摄像头,我用的是带有红外灯的,并且有光感控制的,只有在...

乐_然
03/11
0
0
树莓派pi3 串口问题的解决办法

转载: https://blog.csdn.net/aguangg6655la/article/details/54985423 其他参考1:https://blog.csdn.net/xukai871105/article/details/22713925 其他参考2:https://www.briandorey.com/......

zhenguo26
04/18
0
0
用树莓派构建你自己的微型服务器,可以外网访

第一,你得有一个路由器,否则下面的内容都无法实现了。 第二,你得申请一个免费的动态域名解析,由于我用的是TP-LINK的路由器,只支持花生壳,所以我申请了花生壳的动态域名解析。 申请花生...

maweitao
2014/07/25
0
4
用树莓派通过Java实现远程控制电灯

用树莓派通过Java实现远程控制电灯 本文章由 亓根火柴 原创,转载请注明出处:http://blog.csdn.net/qigenhuochai/article/details/17661845 传说,女娲娘娘炼就七根火柴,来帮助人类度过第一个...

亓根火柴
2014/01/02
0
0
树莓派3B的Qt交叉编译环境搭建

转自: http://blog.csdn.net/shenhuan1104/article/details/53486619 http://blog.csdn.net/shenhuan1104/article/details/53500829 本文永久地址:https://my.oschina.net/bysu/blog/1557......

不最醉不龟归
2017/10/27
0
0
网线直连树莓派及其利用笔记本共享上网的步骤

1.无线网络连接设置为 IP:192.168.0.58 子网掩码:255.255.255.0 默认网关:192.168.0.10(路由器地址) 本地连接属性设置为: IP:192.168.0.1(貌似要结尾是.1树莓派才能上网) 子网掩码:...

Okimbin
2014/02/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CoreText进阶(五)- 文字排版样式和效果

CoreText进阶(五)- 文字排版样式和效果 效果 以下是三个设置了不同属性的效果图 第一个设置了文字颜色为红色,字体为16号 第二个设置了文字颜色为灰色,字体为16号,对其为居中 第三个设置...

aron1992
25分钟前
1
0
10.23 linux任务计划cron~10.27 target介绍

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是...

洗香香
35分钟前
0
0
告警系统主脚本、告警系统配置文件、告警系统监控项目

20.20 告警系统主脚本 告警系统主脚本 main.sh内容 #!/bin/bash#Written by aming.# 是否发送邮件的开关export send=1# 过滤ip地址export addr=`/sbin/ifconfig |grep -A1 "en...

lyy549745
38分钟前
0
0
Don’t Repeat Yourself

在软件工程中,Don’t Repeat Yourself(DRY)是软件开发的原则,旨在减少重复,用抽象代替它,使用数据规范化来避免冗余。 这个原则在维基百科上是说是由Andy Hunt和Dave Thomas《The Pragmat...

woshixin
40分钟前
0
0
搭建webpack项目框架

作者:汪娇娇 时间:2018年6月4日 一、说明 随着业务发展和前端人员的增加,搭建一个通用框架以及制定统一规范就成了必然。对于选型这方面,一开始好像就没考虑其他框架,直接选了webpack。w...

娇娇jojojo
47分钟前
0
0
Java基础——面向对象(内部类)

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 内部类: 1.有名内部类 2.无名内部类 内部类申请...

凯哥学堂
56分钟前
0
0
HttpClient内部三个超时时间的区别

RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(config.connReqTimeout) //从连接池中获取连接的超时时间 ......

1713716445
今天
0
0
每天一个命令SCP

每天一个命令:SCP scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速...

河图再现
今天
0
0
cron/chkconfig/systemd/unit/target

linux任务计划 : cron工具 任务计划在运维工作中用到的比较多,大部分系统管理工作都是通过定期自动执行某个脚本来完成。 查看linux中任务计划的配置文件: /etc/crontab [root@yolks-001 ~]...

Hi_Yolks
今天
1
0
ftp攻略

Vsftpd完全攻略(一)ftp原理与vsftp安装:https://www.iyunv.com/thread-44698-1-1.html Vsftpd完全攻略(二)设置匿名用户也支持下载和上传与创建目录:https://www.iyunv.com/forum.php?mo...

寰宇01
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部