background image

K9F1208UOM 容量为 64M×8 b 的 NAND FLASH 芯片;RAM 配备 2 片 HY57V561620BT—
H 组成 32 位数据总线的 SDRAM,适用监控终端处理庞大视频数据的需求。在 USB Host 接
口上外接一块基于

IEEE802.11 协议的无线网卡,通过无线 AP 端点接收监控前端视频数

据。液晶屏选用

TFT 真彩液晶屏,并配备相应的触摸屏实现人机交互的目的。

2 系统的软件设计

移动视频监控终端软件设计以嵌入式

Linux 操作系统为核心,作为一种开源操作系统,

Linux 具有支持多种硬件平台、丰富的设备驱动和良好的网络功能等特点。针对监控终端的
具体应用对内核进行配置,剪裁出合适的系统。监控终端应用软件是建立在操作系统之上,
为实现

RTP/UDP/IP 协议下接收 H.264 视频流和 ffmpeg 解码库实时解码视频流。

2.1 H.264 视频流的传输

2.1.1 传输方式选择

视频的实时传输要求较低的时间延迟,并且允许一定的丢包率。由于

TCP 协议的 3 次

握手以及丢包重传机制会造成一定的延时,在实时监控系统中有一定缺陷,而

UDP 协议是

面向无链接、不可靠的传输层协议,具有消耗资源小,传输速度快等特点,在视频传输过程
中偶尔丢包不会对监控画面产生较大影响。

UDP 协议不提供数据包分包、封装、数据包排序

等 缺 点 , 为 保 障 视 频 流 传 输 的 可 靠 性 , 网 络 传 输 部 分 采 用 建 立 在

UDP 协 议 之 上 的

RTP(Real-time Transport Protocol)实时传输协议来实现,通过套接字与前端建立连接,以接
收视频流数据。

RTP 提供带有实时特性的端对端数据传输服务,包括有效载荷类型的定义、

序列号、时间戳和传输检测控制。基于

RTP/UDP/IP 协议传输视频流封装格式如图 2 所示。

2.1.2 视频流传

采用

UDP 协议传输 RTP 包时会出现乱序的现象,所谓乱序就是监控终端接收到 RTP

包顺序可能前端发送的顺序不一致,因此,首先要对接收的

RTP 包排序。采用在内存中建

立一个双向链表来保存接收的

RTP 包,按照 RTP 报头的序列号(Sequence Number)顺序存放

到链表中,双向链表结构体定义如下,部分变量用于

RTP 分片封包模式。

  

每 当 接 收

到 一 个 新 的
RTP 包后,根
据序列号从链
表尾开始搜索
并插入到合适
的位置,比如,
接收到一个序