视频采集流程
扫描二维码
随时随地手机看文章
;;; 视频传输协议的选择直接关系到最终的 ISL6262CRZ-T 视频质量。常见的传输协议包括TCP和UDP协议。TCP是面向连接的可靠的传输协议,由于它的重传机制、较大的时延和较大的控制开销等特性使它不适合用子视频传输。UDP提供的是不可靠的传输,但是效率很高,时延较小,比较适合用于视频传输。针对视音频的实时传输性要求,IETF设计了RTP (Real-TimeTransportProtocol)/RTCP(Real-Time Transport Control Protocol)。RTP通常建立在UDP协议之上,利用UDP对实时的视频数据进行组播或单播,实现对多点和单点的视频数据进行传输。RTCP是与RTP配合使用的协议。主要功能是服务质量的监视与反馈、媒体间的同步,以及组播组中成员的标识。因此,视频传感器节点采用了RTP/RTCP协议。
;;; 视频传感器节点的任务包括视频采集、压缩和发送3部分。逻辑上最好是采用3个独立的任务运行,但是如果采用多进程的方式来将各个任务分离则会引入上下文切换的问题,会造成很大的系统开销,影响系统的实时性。因此,视频传感器节点采用多线程设计,从而减少了上下文切换的开销。视频采集、视频压缩与视频发送分别在独立的线程中运行。其中,视频采集和视频压缩各占一个线程,视频发送可根据需要设置多个线程对应多个视频传输请求。多线程技术简化了系统设计的复杂度,优化了系统资源的调度。为实现视频来集、压缩和发送的同时进行,视频传感器节点中设计了视频数据管道。视频采集线程将采集的视频数据送给视频压缩线程,进行压缩后送入视频数据管道,发送线程从管道的另一端取走数据发送。
;;; 视频数据管道的本质就是若干个环形队列,有发送队列、就绪队列、空闲队列等。;;;;;;;;;;;; ;;
;;; ①发送队列中的是包含视频传输线程正在发送的视频数据的数据单元,当数据单元发送完成后该单元就从发送队列移入空闲队列中。
;;; ②就绪队列中的是包含由视频压缩线程写入的压缩后视频数据的数据单元,随时可以加入发送队列。
;;; ③空闲队列中的数据单元就是尚未被使用的空闲数据单元,可供视频压缩线程使用,当视频压缩线程将压缩的数据写入后,空闲数据单元就加入就绪队列中。
;;; 视频采集线程、压缩线程、视频发送线程和视频数据管道都由视频服务进程创建和维护。当视频传感器节点启动后,视频服务进程会建立并初始化视频数据管道,为视频数据队列的存储做好准备,然后侦听网络连接状况,如有视频传输请求且没有超过最大连接数则开始采集、压缩视频流,然后写入视频数据管道并创建一个新的视频传输线程与请求视频的节点进行会话。具体流程如图10-55所示。