H.264/ACC音视频编码流的RTP/RTSP传输实现(1)

目标:

  实现一个用于H.264/ACC音视频编码流的RTP/RTSP传输的简单服务器,主要通过此过程学习基于RTP的NAL、ADTS码流封装技术和基于RTSP的视频交互控制技术。完整系统应该包括服务器和客户端两个部分,其中服务器负责接收客户端请求、封包以及发送音视频数据,客户端负责发送请求和接收视频数据。分别在Windows平台上和Android平台上进行网络传输实体测试,通过客户端网络流抓包和播放器播放对系统进行进一步验证。

  

简介:

  随着互联网和移动通信的飞速发展,H.264凭借其突出的编码效率和网络兼容性在视频会议、可视电话、远程监控、数字电视等各个方面[[[] 樊姗. 基于 RTP 的 H. 264 视频传输技术的研究 [D]. 山东大学, 2008]]得到了广泛的应用,被视为最具开发潜力的视频压缩技术之一。H.264提供数据包编码,有利于将数据包在网络中传输,支持流媒体服务应用;对不同应用的时延要求具有灵活的适应性;编码和解码的复杂度具有扩展性。H.264从设计上把视频编码和传输分开,形成两个层次:视频编码层(VCL)和网络提取层(NAL)[[[] 陈翼平. 数字有机体流媒体客户端 H. 264 文件重组研究与实现[D]. 电子科技大学, 2009]]。VCL提供高质量的视频压缩,NAL对压缩好的数据进行传输封装,提供了良好的网络适应性。

  由于视频流的数据传输量极大,受到网络传输质量的限制,虽然H.264提供了良好的网络适应性,但是仍然需要一种协议机制来保证其可靠传输。要实现在网络中进行有效和高质量的传输,需要对视频流的实时性、连续性和丢包率进行严格控制。针对视频流传输的这些特点,Internet专家任务组IETF于1996年,制定了实时传输协议/实时传输控制协议(Real-time Transport Protocol/Real-time Transport Control Protocol)协议族。随着RTP协议族的普及和H.264编码技术的广泛应用,IETF还制定了针对H.264标准的RTP封装协议RFC3984和RTP补充控制协议RTSP。因此,根据这些协议,针对不同的网络媒介和网络状况,对H.264视频流进行打包传输及控制,将为其网络应用提供良好保证。同时,随着流媒体技术的不断发展,基于RTP/RTCP/RTSP的视频打包及传输方法的研究和应用将会变得越来越有意义。

  鉴于目前Internet 网络带宽与视频庞大的数据量、实时传输特性之间存在的矛盾,引发了人们对于如何保证Internet网络上视频实时传输QoS问题的思考,主要集中表现在以下几个方面

1)视频数据的处理

  与传统Internet上的文件传输以及web浏览等应用不同,多媒体应用不再局限于简单的文字和图形,而是逐渐过渡到音视频(A/V)等媒体格式,与此同时数据量也随之大幅增加。日益增加的视频数据量与有限的网络带宽形成了流媒体发展的主要矛盾,对于一些实时性要求比较高的领域,这种矛盾表现得尤为突出。所以,选择一种合适的视频压缩方法,对是视频数据进行有效处理,以降低宽带占有率显得极为重要。在视频传输技术的发展过程中,H.264凭借高编码效率和良好的网络兼容性,成为视频传输数据编码的不二选择。

2)网络传输协议的选择

  由于视频流的数据传输量极大,受到网络传输质量的限制,会出现延时,抖动等现象。虽然H.264提供了良好的网络适应性,但是要实现在网络中进行有效和高质量的传输,需要对视频流的实时性、连续性和丢包率进行严格控制。因此,必须选择一种适合多媒体传输的实时传输协议,以降低延迟、减少抖动、丢包等现象,从而改善视频实时传输QoS。

  针对流媒体视频流传输的特点,Internet专家任务组IETF于1996年,制定了实时传输协议/实时传输控制协议(Real-time Transport Protocol/Real-time Transport Control Protocol)协议族。随着RTP协议族的普及和H.264编码技术的广泛应用,IETF还制定了针对H.264标准的RTP封装协议RFC3984。因此,根据RFC3984,针对不同的网络媒介和网络状况,对H.264视频流进行打包,将为其网络应用提供良好保证。同时,随着流媒体技术的不断发展,基于RTP/RTCP的视频方法研究和应用将会变得越来越有意义。

  媒体技术不仅涉及大量的数据传输,而且要求满足用户对实时观赏和互动方式控制的需要。网络的宽带化改造在不断进行,因而在容量上可以满足多数流媒体业务的需要,而实时性是下一代网络应用的一个重要发展方向,它要求传输的延时小、丢包率低。实时性应用特点使得受到重传机制、拥塞控制机制等限制的TCP 协议无法被用于传输实时多媒体数据。为了满足实时性需求,出现了实时传输协议(RTP )、实时传输控制协议(RTCP)和实时流协议(RTSP)等流媒体协议。RTP是针对Internet上多媒体数据流的一个传输协议。可以实现一对一或一对多的传输情况。

时间: 2024-08-25 01:46:03

H.264/ACC音视频编码流的RTP/RTSP传输实现(1)的相关文章

H.264/ACC音视频编码流的RTP/RTSP传输实现(2)

H.264编码基本原理 为达到良好的编码效率及性能,H.264编码器采用的仍是变换和预测的混合编码法,[[[] 毕厚杰. 新一代视频压缩编码标准: H. 264/AVC[M]. 人民邮电出版社, 2005]]其完整的编码过程如图2-1所示. 在H.264编码标准中,输入的帧或场Fn是以宏块为单位进行处理的,采样后的视频图像都被分成16*16的宏块每个宏块包括1个亮度子块和2个8*8的色度子块.在分割宏块后,宏块按照相应次序进行编码器进行压缩编码.在H.264编码过程中,首先按照根据编码速率.编码

H.264/ACC音视频编码流的RTP/RTSP传输实现(4)

实时流协议RTSP RTSP[[[] Schulzrinne,H., Rao.Real time streaming protocol (RTSP) RFC 2326[J]. IETF .1998]]由RealNetworks.Netscape Communications和哥伦比亚大学共同开发而成.1998年5月,IETF作为建议标准发布.RTSP是从HTTP协议框架上继承而来,拥有着HTTP的大部分特性.RTSP(Real Time Stream Protocol,实时流协议)是应用级协议,

音视频编码基础知识

本文转载自 http://blog.csdn.net/ljzcom/article/details/7336258 ,如有需要,请移步查看. Technorati 标签: 音视频 编码 基础知识 --------------------------------分割线开始----------------------------------------------- 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中

基于H.264协议的视频传输系统中遇到的问题以及解决办法

问题1.视频压缩解码模块在运用的时候出现错误:解码器再解码第二帧视频图片的时候出现异常 client: ../../decoder/T264dec.c:594:T264dec_decode_nal: Assertion `0' failed. Aborted 对于该问题的分析及解决过程为: 1.  修改数据类型,所有缓存区改为unsigned char类型(原来统一为char 类型),但是还是遇到一样的异常错误,问题没有解决. 2.  查看缓存区具体内容是否与服务器端压缩的数据是一致的的,对照数

全志Tina_dolphin播放音视频裸流(h264,pcm)验证

最近在验证tina对裸流音视频的支持,主要指h264视频裸流及pcm音频裸流. 在原始sdk中有针对很多video和audio类型的parser,但就是没有找到pcm和h264的parser,所以需要自己搞个parser,同时找到audio播放的的接口写个demo来验证. 所有支持解析类型的parser方法都在目录:/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/libcore/parser下 aac Android.

ffmpeg解码RTSP/TCP视频流H.264(QT界面显示视频画面)

我用的ffmpeg版本为 ffmpeg-2.1.8.tar.bz2 版本低了恐怕有些头文件和API找不到. 在Linux下解压后编译,Linux下编译很简单,我这里生成的动态库: ./configure –enable-shared make 就能找到各个so动态库文件. 移动位置后,记得手动链接 一下: ln -s libavcodec.so.55 libavcodec.so ln -s libavdevice.so.55 libavdevice.so ln -s libavfilter.so

调用FFmpeg SDK对H.264格式的视频压缩码流进行解码

由于作者不习惯该编辑器,只是将本文的截图贴了出来,详文见:https://www.yuque.com/docs/share/cce69b1b-b619-44b5-acd1-efa229d88627 原文地址:http://blog.51cto.com/4754569/2324664

音视频处理之编码介绍20180224

一.视频编码数据 1.概述 视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量.如果视频不经过压缩编码的话,体积通常是非常大的,一部电影可能就要上百G的空间.视频编码是视音频技术中最重要的技术之一.视频码流的数据量占了视音频总数据量的绝大部分.高效率的视频编码在同等的码率下,可以获得更高的视频质量. 视频编码的简单原理可以参考:视频压缩编码和音频压缩编码的基本原理 注:视频编码技术在整个视音频技术中应该是最复杂的技术.如果没有基础的话,可以先买一些书看一

H.264结构

1. H.264 H.264亦称为H.264/AVC(先进视频编码),由MPEG和ITU合作制定的视频编码标准.从原理上讲,H.264仍旧秉承传统混合编码架构,但由于在编码细节引入和诸多改进,将许多一直停留在纸上的技术如可变尺寸块的运动补偿.多参考帧预测等付诸实践,使编码效率得到了显著的提高,同时也大大增加了编解码器的复杂度和运算量.是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字