基于RASPBERRY PI RTMP推流() – 听风

1.格式化sd card

SD Formatter 对其进行格式化方便后续操作

2.下载官网的系统镜像并写入sdcard

Win32 Disk Imager

3.插入设备上电直接运行

编辑系统模块文件

  1. sudo nano /etc/modules
  2. 在这个文件的最后添加一行
  3. bcm2835-v4l2
  4. 保存。建议配置好之后重启一下树莓派。然后测试摄像头是否正常工作。
  5. vcgencmd get_camera

更换源阿里镜像主页:http://mirrors.aliyun.com/

  1. 编辑 /etc/apt/sources.list 文件。这里推荐用 nano 命令编辑。命令如下:
  2. pi@raspberrypi:~ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份为 sources.list.bak pi@raspberrypi:~ sudo nano /etc/apt/sources.list #编辑sources.list 文件
  3. 进入编辑界面,删除原有的内容或者用#注释掉原来的源,添加下方的源内容。
  4. 源如下:
  5. deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
  6. deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
  7. 然后使用 Ctrl+O 回车后保存文件,Ctrl+X 退出编辑器。
  8. 然后执行
  9. pi@raspberrypi:~ sudo apt-get update #更新系统软件 pi@raspberrypi:~ sudo apt-get upgrade

中文支持及中文输入法

  1. sudo apt-get install -y ttf-wqy-zenhei
  2. sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin
  3. bus输入法是一个基于Python开发的全新输入法框架,支持多种语言。
  4. 安装命令:sudo apt-get install ibus ibus-pinyin

安装vim

  1. sudo apt-get install -y vim
  2. 会报错
  3. sudo apt-get remove vim-common
  4. sudo apt-get install -y vim
  5. cd ~
  6. vim .vimrc
  7. pi@raspberrypi ~ $ vim .vimrc
  8. 写入如下配置文件即可
  9. set number
  10. syntax on
  11. set tabstop=4

4安装xrdp方便远程连接

  1. sudo raspi-config
  2. #设置开启摄像头vnc ssh等相关配置
  3. sudo apt-get install tightvncserver
  4. #必须先安装tightvncserver!!!
  5. sudo apt-get install xrdp
  6. sudo ufw allow 3389
  7. sudo service ufw restart
  8. sudo service xrdp restart

树莓派安装mplayer

  1. sudo apt-get install smplayer -y
  2. sudo apt-get remove libdvdnav4 -y
  3. sudo apt-get install mplayer -y
  4. #运行下面命令即可观看摄像头
  5. sudo mplayer tv://
  6. #屏幕截图,保存在当前目录命令pwd可以知道自己所在位置
  7. raspistill -o image.jpg

-v:调试信息查看
-w:图像宽度
-h:图像高度
-rot:图像旋转角度,只支持 0、90、180、270 度(这里说明一下,测试发现其他角度的输入都会被转换到这四个角度之上)
-o:图像输出地址,例如image.jpg,如果文件名为“-”,将输出发送至标准输出设备
-t:获取图像前等待时间,默认为5000,即5秒
-tl:多久执行一次图像抓取

执行下面的指令:

raspistill -o image%d.jpg -rot 180 -w 1024 -h 768 -t 20000 -tl 5000 -v
注:这里解释一下图片的采集数量和-t参数以及-tl参数的相关关系:N_Picture = -t(获取图像前等待时间)/-tl(多久执行一次抓取时间) + 1。所以有20000/5000+1 = 5张图片

使用raspivid指令来生成.h246的文件

raspivid -o mykeychain.h264 -t 10000 -w 1280 -h 720
这样就会在当前文件夹下面生成mykeychain.h264的文件:

如果你想改变拍摄时长,只要通过 “-t” 选项来设置你想要的长度就行了(单位是毫秒)。
如果你想改变图像的分辨率,使用 “-w” 和 “-h” 选项将分辨率降为 1280×720等等。

  1. Screen(让树莓派永不失联)
  2. 利用SSHSerare Shell,安全外壳协议)来远程控制树莓派应该是我们最常用的 操作树莓派的方式,但在用SSH连接时,我们常常会遇到连接突然断开的问题。连 接一旦断开,原米我们进行的操作也就中断了,若再使用,就得从头再来了。相信你肯定因为电脑待机而中断树莓派的任务而苦恼过。
  3. Screen来让树莓派永不失联的方法。此方法下,就算连接断开了,当我们重新连接后依旧进行原来的操作,而不需要从头再来。
  4. // 直接安装Screen
  5. sudo apt-get install -y screen
  6. // 开启一个后台view(后台的终端,不会因为断开连接而终止)
  7. screen -S 终端名
  8. // 然后就可以继续你的操作了
  9. 常用命令
  10. 命令 参数 作用
  11. Screen -S 终端名 新建一个新的后台虚拟终端
  12. -ls 查看已创建的后台虚拟终端
  13. -r 终端名 进入该终端
  14. 快捷键
  15. 快捷键 再按 作用
  16. Ctrol+a d 保存一个后台虚拟终端
  17. Ctrol+a w 显示所有窗口列表
  18. Ctrol+a Ctrol+a 切换到之前显示的窗口
  19. Ctrol+a c 创建一个新的运行shell的窗口
  20. Ctrol+a n 切换到下一个窗口
  21. Ctrol+a p 切换到前一个窗口
  22. Ctrol+a 0..9 切换窗口0..9
  23. Ctrol+a a 发送C-a到当前会话
  24. Ctrol+a k 杀掉当前窗口
  25. Ctrol+a [ 进入复制/回滚模式

看门狗

  1. //树莓派自带看门狗模块,我们需要添加进去就好。
  2. sudo modprobe bcm2708_wdog
  3. echo -e "\nbcm2708_wdog" > sudo tee -a /etc/modules
  4. // 安装看门狗软件
  5. sudo apt-get install -y chkconfig watchdog
  6. // 配置
  7. sudo vim /etc/watchdog.conf
  8. // 去掉"watchdog-device=/dev/watchdog"这一行的#注释
  9. // 其它配置参考如下:
  10. # 用于设定CPU温度重启条件
  11. temperature-device = /sys/class/thermal/thermal_zone0/temp
  12. # 最大温度为100度,超过立即重启
  13. max-temperature = 100000
  14. # 1分钟最多进程为24个,超过即重启
  15. max-load-15=12
  16. # 5分钟最多进程为18个,超过即重启
  17. max-load-15=12
  18. # 15分钟最多进程为12个,超过即重启
  19. max-load-15=12
  20. // 完成配置后,启动看门狗
  21. sudo /etc/init.d/watchdog start
  22. // 设置为开机自启
  23. chkconfig watchdog on

LINKS 和 Lynx命令行浏览器

  1. Lynx
  2. Lynx是一个通用的浏览器。使用下面的命令安装它:
  3. sudo apt-get install lynx
  4. lynx http://www.google.com
  5. LINKS
  6. sudo apt-get install links
  7. 通过下面的命令来访问网站,把http://www.google.com换成你想要的地址:
  8. links http://www.google.com

树莓派安装ffmpeg (以下方法速度特别慢,建议先fork到自己的github上再从码云上使用一键从github上导入再使用不然真的很慢)编译ffmpeg的过程也十分漫长

  1. 树莓派安装ffmpeg
  2. 先安装h264编码器
  3. #!/bin/bash
  4. cd /usr/src
  5. git clone git://git.videolan.org/x264
  6. cd x264
  7. ./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
  8. sudo make
  9. sudo make install
  10. 下载源码编译安装ffmpeg
  11. cd /usr/src
  12. git clone git://source.ffmpeg.org/ffmpeg.git
  13. cd ffmpeg
  14. sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
  15. sudo make
  16. sudo make install
  17. 由于树莓派原因,这个过程很长……很长…… 建议开screen,然后Ctrl+a+d前面已经给出了screen的教程

最后就是推流了

首先这个是推送一个视频文件

  1. ffmpeg -re -i "1.mp4" -vcodec copy -acodec aac -b:a 192k -f flv "你的rtmp地址/你的直播码"

在树莓派中使用FFmpeg将摄像头数据以流媒体数据推送到RTMP服务器,时间限制为10秒:

  1. ffmpeg -ss 0 -t 10 -i /dev/video0 -f flv rtmp://rtmp server address:server port/project name/stream name

命令参考文章
http://shumeipai.nxez.com/2015/01/03/raspberry-pi-software-installation-and-uninstallation-command.html

sudo apt-get install -y curl build-essential libpcre3 libpcre3-dev libpcre++-dev zlib1g-dev libcurl4-openssl-dev libssl-de

附:简单的vlc推流 ts形式封装格式

  1. sudo apt-get update
  2. sudo apt-get install vlc
  3. sudo raspivid -o - -t 0 -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264

开VLC,然后打开媒体-》网络串流-》输入http://PI的IP地址:8090查看实时不卡的网络监控了。