[RTP+DIY] FireWRT远程视频监控-1
本帖最后由 Developer_x 于 2015-6-10 11:24 编辑1.准备工作
1.1.购置摄像头:
支持输出视频格式yuyv420、yuyv422或jpeg之一即可
1.2.路由器:
支持usb
1.3.注意:
如果购置的摄像头输出的视频格式是yuyv420或者yuyv422,会让FireWRT的CPU消耗30-60%,虽然FireWRT是双核880MHz的CPU但是也会出现视频卡顿现象。
如果购置的摄像头输出视频格式只是jpeg,则不存在上述问题。
1.4安装VLC播放器
下载地址:
http://www.videolan.org/
1.5连接示意图
http://developer.t-firefly.com/data/attachment/forum/201503/26/091903djjc78pnpjxccxx2.png
2.编译OpenWrt
依赖的库文件:
libjpeg
libpthread
kmod-video-core
kmod-video-uvc
kmod-usb-core
kmod-usb2
2.1 在package下新建文件rtp2jpeg
[*]cd rtp2jpeg
[*]vim Makefile
复制代码
内容如下
可以直接在Makefile中写上这些依赖
[*]#
[*]# Copyright (C) 2010-2013 hua.shao@mediatek.com
[*]#
[*]# Ralink Property Software.
[*]#
[*]
[*]include $(TOPDIR)/rules.mk
[*]
[*]PKG_NAME:=rtp2jpeg
[*]PKG_RELEASE:=1
[*]
[*]PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
[*]
[*]
[*]include $(INCLUDE_DIR)/package.mk
[*]
[*]define Package/rtp2jpeg
[*] SECTION:=firefly
[*] CATEGORY:=rtp2jpeg
[*] TITLE:= rtp2jpeg
[*] <font color="Red">DEPENDS:=+libjpeg +libpthread +kmod-video-core +kmod-video-uvc +kmod-usb-core +kmod-usb2</font>
[*]endef
[*]
[*]define Package/rtp2jpeg/description
[*]An program to config rtp2jpeg.
[*]endef
[*]
[*]define Build/Prepare
[*] mkdir -p $(PKG_BUILD_DIR)
[*] $(CP) -r ./src/* $(PKG_BUILD_DIR)/
[*]endef
[*]
[*]define Build/Configure
[*]endef
[*]
[*]define Package/rtp2jpeg/install
[*] $(INSTALL_DIR) $(1)/usr/bin
[*] $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/camera_encode $(1)/usr/bin #应用程序
[*]endef
[*]$(eval $(call BuildPackage,rtp2jpeg))
复制代码
注意:如果是复制以上的Makefile请注意tab。
视频采集输出代码下载
本帖隐藏的内容git clone http://git.oschina.net/OpenWrt-X/rtp2jpeg src
如果编译出错,可能是src目录下少了一个bin文件目录
[*]mkdir src/bin
复制代码
执行
[*]$ make ./package/rtp2jpeg/compile
复制代码
http://developer.t-firefly.com/data/attachment/forum/201503/25/150622ml5h5f5zh57btc5s.png
拷贝到路由器上
2.2直接编译到固件中
[*]make menuconfig
[*]
复制代码
http://developer.t-firefly.com/data/attachment/forum/201503/25/150846qd88ofeey2cfy2af.png
选择上rtp2jpeg
[*]make V=99 -j4
复制代码
烧写固件
3.rtp2jpeg使用
3.1 VLC使用
在克隆的src代码中包含文件:mjpeg.sdp
内容:
[*]m=video 10000 RTP/AVP 26
[*]a=rtpmap:26 JPEG/90000;
[*]a=decode_buf=300;
[*]a=framerate:25
[*]c=IN IP4 local
[*]
复制代码
10000是端口号
ubuntu使用:
右键点击:mjpeg.sdp打开用VLC打开
http://developer.t-firefly.com/data/attachment/forum/201503/25/152207wjw1h8zgvlvgd7zq.png
右键点击此界面的mjpeg.sdp,选择播放。
3.2 OpenWrt rtp2jpeg程序使用
从串口或者ssh,telent登录路由器
编译好的二进制文件存放在了/usr/bin/下,名字为camera_encode
http://developer.t-firefly.com/data/attachment/forum/201503/25/152616zumgtzuu1jsumspo.png
插上USB摄像头,打印出的信息如下:
http://developer.t-firefly.com/data/attachment/forum/201503/25/173418v3sf7yeik7n9ak6s.png
正确在终端输入命令(VLC已经准备接收视频,输入的IP地址为PC电脑的IP一致):
http://developer.t-firefly.com/data/attachment/forum/201503/25/173531q9szb1ci10l81hbv.png
此时观测VLC播放器:
http://developer.t-firefly.com/data/attachment/forum/201503/26/091250q7vovzm18r0vqb1o.png
下载附件
播放成功。
代码解释,请看下一章分析。
原文地址:http://developer.t-firefly.com/forum.php?mod=viewthread&tid=980&extra=page%3D2
页:
[1]