首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于ARM的移动视频监控系统
来源:本站整理  作者:佚名  2010-03-24 09:11:22




3.2.1 流媒体服务器的设计
    流媒体服务器主程序用于开放某个视频服务器端口,并不断监听端口,如有连接请求则建立连接,建立后流媒体服务进程将不断向端口提供采集到的视频数据流同时也接收客户端发送过来的视频调节命令参数。流媒体服务器主程序流程图如图3所示。


    (1)采集视频数据
    系统是在嵌入式Linux系统平台上采用Video4Linux编程来采集视频的。一般摄像头是直接读视频设备,采集到视频数据并存在文件中。对文件进行操作,这样程序运行效率会很低。本系统摒弃这种方法,采用mmap(内存映射)方式截取视频数据。mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。

    (2)传输视频数据
    本系统通过网络传输视频数据,用套接字(Socket)编程实现。

    (3)采集线程与传输线程同步
    流媒体服务器的设计有个关键点:保证连续不断的视频流。针对这一点,本系统采用多线程编程,采集和传输并行执行。用互斥量和标志位来实现采集线程和传输线程的同步。
    采集数据时给互斥量加锁,直到当前帧采集完并填充完当前帧头结构体才解锁互斥量,再开始传输。同理,传输当前帧时采集线程等待,直到当前帧传输完。采集完两帧数据传输第二帧。传输完成后,采集完第三帧传输第三帧。依此循环,采集完第N帧传输第N帧。此时实际只传输了第2帧到第N帧,即N-1帧。
    用户的视觉反应需要时间,此丢弃第一帧的设计思想并不会使画面失真。反而连续不断的视频流传输到客户端为用户能够获得良好的视频质量打下了基础。
    采集线程:

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:232,242.20000 毫秒