[经验] 【NanoPi NEO试用体验】结项 基于H264 RTP的图传系统

[复制链接]
发表于 2017-1-5 15:56:06   956 查看 5 回复 显示全部楼层 倒序浏览
分享
本帖最后由 蓝天的云朵7 于 2017-1-5 16:14 编辑

背景:在网络上传输音/视频等多媒体信息,主要有下载和流式传输两种方案。流式传输的特点是可以在下载的同时进行观看。由于摄像头采集的视频数据信息非常大,如果直接将原始数据在网络上进行传输,无疑非常不现实,所以通常需要先对视频信息进行编码压缩后,再进行传输,接收端接收到压缩信息后,先解压再播放。
       目前最为通用的视频编码方法就是H264。百度百科解释:H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。
       视频在网上流式传输的通信协议通常是RTP协议,还有其他相关服务协议如RTSP等,一般情况下,RTP协议是基于UDP的。

方案:

NanoPi NEO外接USB摄像头进行视频采集,将采集到的视频数据压缩编码为h264格式后,使用RTP协议进行网络传输,PC机使用开源播放器VLC接收该视频流进行播放。该方案的软件实现是基于强大的ffmpeg和X264软件包。

环境配置:
1) 移植安装X264:ffmpeg原生不支持h264,所以我们需要安装一个h264的三方软件x264。
Step1: 下载x264安装包:git clone git://git.videolan.org/x264.git
Step2: 进入x264目录,执行配置命令:./configure --enable-shared --enable-static --prefix=/usr/local/x264
Step3: make
Step4: make install
Step5: 将/usr/local/x264/lib下的库文件拷贝到/usr/bin文件下

2)移植安装ffmpeg:
Step1:下载安装包:从官网http://ffmpeg.org/下载最新源码包后,拷贝到开发板上,并解压缩。
Step2:进入源码目录下,执行配置命令:./configure --prefix=/usr/local/ffmpeg
Step3:make
Step4:make install

3)PC安装VLC播放器

视频传输:
1)VLC配置文件:
PC上新建一个配置文件:h264_rtp.sdp,其内容如下:
m=video 5060 RTP/AVP 96
a=rtpmap:96 H264
c=IN IP4 192.168.x.xxx
注解:5060是端口号,要和ffmpeg命令中端口号对应;x表示的是开发板的IP地址。
然后使用VLC打开该文件。

2)开发板执行传输命令:cd /usr/local/ffmpeg/bin/ 然后执行./ffmpeg –f video4linux2 –s 640*480 –i /dev/video0 –vcodec h264 –f rtp rtp://192.168.x.xxx:5060
注解:使用了软件包的可执行文件ffmpeg,video2linux2表示该USB视频设备使用V4L2接口进行访问;640*480是摄像头支持的视频输出分辨率;/dev/video0表示的是USB摄像头的设备文件;h264是对视频进行编码的压缩格式;rtp是视频网络传输的协议;x表示接收端即PC的IP地址;5060是端口号,和上文对应。
ffmpeg选项详解参考: http://blog.csdn.net/matthew0618band/article/details/9830681

3) VLC上就可以看到usb摄像头传来的视频了。
图像.png

成果:完成了使用USB摄像头进行视频采集H264编码后网络传输,但是传输实时性不太好,时延明显,可以进一步提高性能。




标签:NanoPi NEO h264 rtp usb camera v4l2

技术员

发表于 2017-1-6 10:20:57  

PCB在线计价下单

板子大小:

cm
X
cm

层数:

2

板子数量:

10

厚度:

1.6
要是能再加一个演示视频就完美了
回复

点赞

发表于 2017-1-7 23:47:02    楼主|
小萃米 发表于 2017-1-6 10:20
要是能再加一个演示视频就完美了

以后发帖可以尝试
回复

点赞

技术员

发表于 2017-1-14 21:28:25  
时延很大,试了一下
回复

发表于 2017-1-19 23:13:10    楼主|
18811707971 发表于 2017-1-14 21:28
时延很大,试了一下

是这样,网页的应该好一些
回复

点赞

版主

发表于 2017-1-20 13:39:14  
谢谢分享
回复

高级模式
您需要登录后才可以回帖 登录 | 注册

专家问答 查看更多>>
关闭

站长推荐 上一条 /7 下一条

小黑屋|手机版|Archiver| 电子发烧友 ( 粤ICP备14022951号-2 )     

GMT+8, 2017-5-27 08:30 , Processed in 0.660544 second(s), 16 queries , Memcache On.

微信扫描
快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

我的提问

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

-

硬件设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PCB设计论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

树莓派论坛

智能硬件论坛

开发快智能硬件开发平台

Intel物联网开发者专区

Waveshare

乐美客SBC专区

Arduino论坛

BeagleBone论坛

机器人论坛

创客神器NanoPi

小钢炮CANNON

比派科技banana pi专区

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

个人版区

阿东Verilog技术专版

直流马达驱动电路设计

LabVIEW英雄联盟

特权同学FPGA专区

-

厂商专区

灵动微电子 MM32

盈鹏飞嵌入式

TI论坛

TI Deyisupport社区

芯灵思嵌入式论坛

Tisan

米尔科技

庆科社区

WIZnet技术专区

Cypress技术论坛

飞凌嵌入式

Qualcomm技术论坛

英创嵌入式

机智云GoKit论坛

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区