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

[复制链接]
发表于 2017-1-5 15:56:06   1586 查看 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编码后网络传输,但是传输实时性不太好,时延明显,可以进一步提高性能。




标签:h264

技术员

发表于 2017-1-6 10:20:57  
要是能再加一个演示视频就完美了
回复

点赞 举报

发表于 2017-1-7 23:47:02    楼主|

PCB在线计价下单

板子大小:

cm
X
cm

层数:

2

板子数量:

10

厚度:

1.6
小萃米 发表于 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  
谢谢分享
回复

举报

只有小组成员才能发言,加入小组>>

37个成员聚集在这个小组

加入小组

创建小组步骤

关闭

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

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

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

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

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

-

IC设计论坛

芯片测试与失效分析

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

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

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

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区