[RTP+DIY] FireWRT远程视频监控-1

262 阅读2分钟

1.准备工作
1.1.购置摄像头:
支持输出视频格式yuyv420、yuyv422或jpeg之一即可
1.2.路由器:
支持usb
1.3.注意:
如果购置的摄像头输出的视频格式是yuyv420或者yuyv422,会让FireWRT的CPU消耗30-60%,虽然FireWRT是双核880MHz的CPU但是也会出现视频卡顿现象。
如果购置的摄像头输出视频格式只是jpeg,则不存在上述问题。
1.4安装VLC播放器
下载地址:
www.videolan.org/
1.5连接示意图
 
2.编译OpenWrt
依赖的库文件:
libjpeg
libpthread
kmod-video-core
kmod-video-uvc
kmod-usb-core
kmod-usb2

2.1 在package下新建文件rtp2jpeg
\

  1. cd rtp2jpeg\

  2. vim Makefile

复制代码

内容如下
可以直接在Makefile中写上这些依赖\

  1. #\

  2. # Copyright (C) 2010-2013 hua.shao@mediatek.com\

  3. #\

  4. # Ralink Property Software.\

  5. #\

  6. \

  7. include $(TOPDIR)/rules.mk\

  8. \

  9. PKG_NAME:=rtp2jpeg\

  10. PKG_RELEASE:=1\

  11. \

  12. PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)\

  13. \

  14. \

  15. include $(INCLUDE_DIR)/package.mk\

  16. \

  17. define Package/rtp2jpeg\

  18.       SECTION:=firefly\

  19.       CATEGORY:=rtp2jpeg\

  20.       TITLE:= rtp2jpeg\

  21.       <font color="Red">DEPENDS:=+libjpeg +libpthread +kmod-video-core +kmod-video-uvc +kmod-usb-core +kmod-usb2</font>\

  22. endef\

  23. \

  24. define Package/rtp2jpeg/description\

  25.   An program to config rtp2jpeg.\

  26. endef\

  27. \

  28. define Build/Prepare\

  29.             mkdir -p $(PKG_BUILD_DIR)\

  30.             $(CP) -r ./src/* $(PKG_BUILD_DIR)/\

  31. endef\

  32. \

  33. define Build/Configure\

  34. endef\

  35. \

  36. define Package/rtp2jpeg/install\

  37.             $(INSTALL_DIR) $(1)/usr/bin\

  38.             $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/camera_encode $(1)/usr/bin #应用程序\

  39. endef\

  40. $(eval $(call BuildPackage,rtp2jpeg))

复制代码


注意:如果是复制以上的Makefile请注意tab。
视频采集输出代码下载\

本帖隐藏的内容

git clone  git.oschina.net/OpenWrt-X/r… src



如果编译出错,可能是src目录下少了一个bin文件目录\

  1. mkdir src/bin

复制代码

执行\

  1. $ make ./package/rtp2jpeg/compile

复制代码

 
拷贝到路由器上

2.2直接编译到固件中\

  1. make menuconfig \

复制代码

 
选择上rtp2jpeg\

  1. make V=99 -j4

复制代码

烧写固件

3.rtp2jpeg使用
3.1 VLC使用
在克隆的src代码中包含文件:mjpeg.sdp
内容:\

  1. m=video 10000 RTP/AVP 26\

  2. a=rtpmap:26 JPEG/90000;\

  3. a=decode_buf=300;\

  4. a=framerate:25\

  5. c=IN IP4 local\

复制代码

10000是端口号
ubuntu使用:
右键点击:mjpeg.sdp打开用VLC打开
 
右键点击此界面的mjpeg.sdp,选择播放。

3.2 OpenWrt rtp2jpeg程序使用
从串口或者ssh,telent登录路由器
编译好的二进制文件存放在了/usr/bin/下,名字为camera_encode
 
插上USB摄像头,打印出的信息如下:
 
正确在终端输入命令(VLC已经准备接收视频,输入的IP地址为PC电脑的IP一致):
 
此时观测VLC播放器:
 
播放成功。
代码解释,请看下一章分析。
原文地址:developer.t-firefly.com/forum.php?m…