您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术基于Android平台的可视对讲系统的设计方案 正文
基于Android平台的可视对讲系统的设计方案

基于Android平台的可视对讲系统的设计方案

点击数:7601 次   录入时间:03-04 11:50:32   整理:http://www.55dianzi.com   嵌入式系统-技术

    static AVCodec*codec;

    static AVCodeCContext*c= NULL;

    static struct SwsContext*img_convert_ctx;

    AndroidBitmaPINfo info;

    void*pixels;

    (2)初始化流程

    ①注册解码器

    avcodec_init();

    av_register_all();

    ②初始化AVPacket、AVCodecContext、AVFrame

    av_init_packet(&avpkt);

    c=avcodec_alLOC_context();

    picture=avcodec_alloc_frame();

    其中,AVFrame是数据流在编解码过程中用来保存数据缓存的对象,从数据流中读取到的数据首先保存到AVPacket中。一个AVPacket最多只包含一个AVFrame,而一个AVFrame可以包含好几个AVPacket。AVCodecContext用于动态记录一个解码器的上下文信息。

    ③设置视频解码器

    codec=avcodec_find_decoder(MPEG-4);

    avcodec_open(c,codec);

    ④视频解码流程

    视频解码流程如图4所示。图4中,AndroidBitmap_getinfo用于获取Android平台Bitmap对象的大小,AndroidBitmap_ lockpixels函数是对Bitmap进行加锁、互斥使用资源。如果AVPacket包中存在未解码完的数据,则调用函数avcodec_decode_ video2进行解码;若解码出一帧后需要调用函数sws_scale进行格式转换。视频数据解码完后颜色空间为YUV,需转换成RGB颜色空间。最后调用fill_bitmap函数进行数据填充及进行Bitmap的解锁和资源的释放。

     

     

    视频显示采用Android平台的ImageView控件进行显示。解码线程接收到视频数据后,通过JNI调用,调用动态库中的视频解码接口函数进行解码,每解码完一帧后通过消息通知主线程进行显示图像的更新,这样就达到了视频数据动态显示的效果。

    3 实现效果

    Android平台在i.MX51 EVK平台上移植成功后,串口中Android 操作系统启动信息如图5所示。 从图中的启动信息可以看出,Android平台移植成功,启动信息也包含有CPU信息、内核版本、大小、加载地址、Android文件系统版本等信息。

23

    该软件开发完成后,在Android工程的bin下生成apk文件,并复制apk文件到SD卡中,在Android系统中安装该软件,使用门口机进行拨号,编码后的音视频数据通过网线进行传输。

    本文将Android手机操作系统应用于i.MX51 EVK平台,并在该平台上提出了可视对讲的设计方案,分别进行了通信流程、应用协议、功能模块等设计,最后实现了系统的设计方案。但由于视频是使用软件解码,运行效率有待提高,且语音对讲部分回声消除存在问题,有待进一步研究。



上一页  [1] [2] 


本文关键字:Android  对讲  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术