码迷,mamicode.com
首页 > 其他好文 > 详细

iTOP-4412开发板p2p视频

时间:2015-07-21 10:30:22      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

整体框架:

一、发送端

1、摄像头通过V4L2接口得到YUV视频格式,可以在win7上用yuvplayer播放

2、使用4412硬件编码模块MFC提供的接口进行硬件编码,得到.264文件,可以在win7上用VLC播放。

3、将.264文件通过live555进行流化。

二、接收端

1、使用live555与发送端连接接收.264文件。

2、用用4412硬件编码模块MFC提供的接口进行硬件解码,得到yuv格式。

3、使用QT显示视频。

 

注意要点:

要使用三星硬件编码模块,在4412提供的linux3.0版本里,不但要求开发板上的系统要在开机后加载MFC固件,在使用MFC提供的API时也需要MFC的头文件和源文件才能使用API,这些文件不在板上提供的linux内核原文件里,而在该内核对应的安卓代码中,可以用linux中的find指令在其中进行查找,注意选择正确的源文件。要在本工程中使用MFC模块,有两种方法一种是将mfc模块头文件,源文件均放置在本工程文件夹中,在工程中进行包含。另一种是将头文件放在编译器默认的查找路径上,比如如果是本地开发,那么本地编译器会到/usr/include目录下查找,而如果是交叉编译,则交叉编译器也需要一个根文件系统,在根文件系统的/usr/include目录下去查找头文件,用buildroot创建的交叉编译工具链的根文件系统目录就是buildroot-2014.05/output/host/usr/arm-gainuo-linux-gnueabihf/sysroot/,当然还可以在编译时给GCC添加额外参数I,指定头文件查找路径。而如果因为商业性问题没有源文件只提供了链接库文件,那么同头文件一样,可以将链接库文件放置连接器默认的查找路径上,或者给GCC添加L参数指定库路径。而一般板商提供的编译器是找不到根文件系统路径的(我是不知道怎么弄的,如果交叉编译工具链和本地工具链共用主机的根文件系统路径,那么是很有可能因为版本问题导致头文件不兼容问题的,比较麻烦)。

 

然后是如何以上步骤中的发送端和接收端其实是集于一体的,但他们相互之间是没有依赖关系的,并行的两个进程就是了。

还有就是如何将发送端的三个步骤和接收端的三个步骤分别串起来,不要用文件作为中转而是直接使用内存数据,不要读写文件,浪费时间。

而串起的各个步骤中会有速率匹配的问题。

 

 

最后要将所用C语言尽可能改写成C++接口

iTOP-4412开发板p2p视频

标签:

原文地址:http://www.cnblogs.com/cenglinjinran/p/4663544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!