行业垂直门户网站

设为首页 | 加入收藏

您当前的位置:北极星电力软件网 > 技术文章 > 正文

基于S3C6410的视频监控系统的设计与实现(4)

3.3 网络传输程序

网络部分采用RTP实时传输协议进行视频数据的传输。RTP(Real-time Transport Protocol)是用于网络多媒体数据流的一种传输协议。为了使系统的实现更简单和稳定,采用已有的RTP库进行程序的开发。本系统选用开源的C语言库oRTP进行开发。

oRTP库是对RTP协议的一种实现,完全采用C语言编写。oRTP库使用简单易用的接口,实现了RTP协议,可以工作于Linux,Windows等多个平台。

系统网络传输模块的流程比较简单。模块首先初始化oRTP库,然后传输数据,在传输完成后释放oRTP库资源。由于模块流程较简单,在此就不列出系统的流程图,仅针对具体的实现进行说明。下面列出网络传输模块的关键代码。在传输数据之前,要对oRTP库进行一些基本的初始化操作。首先对时间戳进行初始化,采用下面的一行代码实现。

m_nUser-Timestamp=0;

然后,调用oRTP库提供的初始化接口函数:

ortp_init();

ortp_scheduler_init();

在完成基本的初始化后,创建一个新的rtp会话对象,并且设置会话对象的一些参数和属性。

session=rtp_session_new(RTP_SESSION_SENDONLY);

上面的代码创建了一个新的rtp会话对象,接下来用下面的函数对session进行参数和属性的设置。

rtp_session_set_scheduling_mode(); rtp_session_set_blocking_mode(); rtp_session_set_remote_addr();rtp_session_set _payload_type();

上面的函数依次对rtp会话对象的调度管理、阻塞模式、发送目的地址和负载类型进行设置。限于篇幅,略去了调用参数。

发送数据调用库函数:

rtp_session_send_wlth_ts();

在发送数据完成后,销毁rtp会话对象,然后释放oRTP库的资源。

rtp_session_destroy(session);

ortp_exit();

在网络传输模块中需要注意的是,由于RTP协议对数据包的大小是有限制的,所以如果传输的视频帧过大,需要进行分包传输处理。

4 结语

本文在基于S3C6410微处理器的开发平台上,实现了一种基于MPEG-4编码的视频监控系统。利用S3C6410内部集成的MFC模块进行视频编码,实现了很高的编码效率。最后,通过RTP协议进行网络数据传输。采用模块化的设计之后,使得系统的网络数据传输部分与具体的有线或者无线传输方式无关。文章在描述各部分实现流程的基础上,详细地说明了关键部分的代码实现。实验测试中,数据编码效率很高。采用了MPEG-4编码方式,在正常网络情况下,传输视频质量较好,系统运行稳定。实验证实了系统的可行性较高。

来源:现代电子技术
投稿联系:陈女士  13693626116  邮箱:chenchen#bjxmail.com(请将#换成@)
《基于S3C6410的视频监控系统的设计与实现 - 北极星电力软件网》的相关文章
    基于S3C6410的视频监控系统的设计与实现 - 北极星电力软件网的相关新闻
      最新新闻
      相关专题