旁征博引

1.RTP,RTCP,RTSP等网络协议有何用途和区别 

RTP: Real-time Transport Protocol,实时传输协议,一般用于多媒体数据的传输。 
RTCP: RTP Control Protocol,实时传输控制协议,同RTP一起用于数据传输的监视,控制功能。 
RTSP: Real Time Streaming Protocol,实时流协议,用于多媒体数据流的控制,如播放,暂停等。 
RTP/RTCP相对于底层传输层,和RTSP,SIP等上层协议一起可以实现视频会议,视频直播等应用。

rtsp发起/终结流媒体(通过sdp) 
rtp传输流媒体数据 
rtcp对rtp进行控制,同步。

RTSP的请求主要有DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等,顾名思义可以知道起对话和控制作用 
RTP/RTCP是实际传输数据的协议 
RTP传输音频/视频数据,如果是PLAY,Server发送到Client端,如果是RECORD,可以由Client发送到Server 
RTCP包括Sender Report和Receiver Report,用来进行音频/视频的同步以及其他用途,是一种控制协议

RTSP的对话过程中SETUP可以确定RTP/RTCP使用的端口,PLAY/PAUSE/TEARDOWN可以开始或者停止RTP的发送,等等

2.Android 的GUI系统的C语言框架包括:


 1)PixelFlinger (下层的工具库) 该库提供像素级别的基本处理,如像素格式定义、画点、线、多边形、纹理颜色填充以及多层处理等操作接口,PixelFlinger 的头文件 和 源代码分别在 system/core/include/pixelflinger/  、 system/core/libpixelflinger/

       2)libui (GUI的框架库)它不仅是显示中枢而且是Android GUI 系统的中枢。改库提供了包括颜色格式,Egl窗口(用于显示)、按键及事件处理、Surface(显示界面)、Overlay(显示叠加层接口)、Camera(照相机接口)等多方面的定义。libui的头文件和源代码分别在 frameworks/base/include/ui/ 、 frameworks/base/libs/ui/;

       3)SurfaceFlinger (主要对Surface 建立、控制、管理等功能)源代码目录:frameworks/base/libs/surfaceflinger/;

       4)Skia 图形图像引擎, 该库是android 的2D系统的底层实现(图形,图像,动画,svg,文本等多方面的图形库,相当于android中图形系统的引擎),通过JNI 向java层提供图形功能接口,并且结合Surface 实现各种UI元素的功能;

       5)OpenGL 3D 引擎。android 系统使用OPenGL的标准接口来支持3D图形功能,其主要内容在frameworks/base/opengl/ 中,其中本地代码的头文件路径为:frameworks/base/opengl/include/EGL/ 、 frameworks/base/opengl/include/GLES/ ,源代码在:frameworks/base/opengl/libagl/ 、 frameworks/base/opengl/libs/  ;

       6)各种JNI (向Java层次提供接口)。

       2. Andorid 的GUI系统的JAVA框架层主要包括:

       1)android.graphics 类 (对应Skia 底层库,提供绘图接口);

       2)android.view.Surface (构建显示界面);

       3)android.view.View (各种UI元素的基类);

       4)javax.microedition.khronos.opengles (标准的OpenGL接口);

       5)android.opengl (Android 系统和OpenGL的联系层);

3.网络编程之TCP协议与UDP对比

UDP协议:

1,面向无连接。

2,不可靠协议,容易丢包。

3,速度快。

4,包体积有限制,64k以内。

通常,聊天,在线视频,凌波。

TCP协议:

1、面向连接。

2、通过三次握手完成连接。

3、是可靠的协议。

4、相对udp稍慢。

4.H263/H264/MPEG4及其差别

 目前比较流行的几种适合网络传输的视频编码有:MPEG4、H263、H264。下面简要介绍下这些编码。

(1)MPEG4:MPEG-4标准主要应用于视像电话(Video Phone),视像电子邮件(Video Email)和电子新闻(Electronic News)等。MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求以最少的数据获得最佳的图象质量。它采用面向对象的压缩方式,根据图像的内容,把其中的对象(物体、人物、背景)分离出来,分别进行帧内、帧间编码,并允许在不同的对象之间灵活分配码率(对重要的对象分配较多的字节,对次要的对象分配较少的字节,从而大大提高了压缩比)。

(2)H263:263是国际电联ITU-T的一个标准草案,是为低码流通信而设计的。但实际上这个标准可用在很宽的码流范围,而非只用于低码流应用。H.263采用无限制的运动向量以及基于语法的算术编码,采用事先预测和与MPEG中的P-B帧一样的帧预测方法。H.263支持5种分辨率,即除了支持QCIF和CIF外,还支持SQCIF、4CIF和16CIF。

(3)H.264是ITU-T的VCEG (Video Coding Experts Group)和ISO/IEC的MPEG(Motion Picture Experts Group)联合成立的“联合视频组”(JVT:Joint Video Team)共同制定的新建议,它等同于ISO的MPEG-4的Part10。可以说,264是263的发展和延续,同时吸收了MPEG的一些优点。它的码流结构网络适应性强,增加了差错恢复能力,能够很AAC:“Advanced Audio Coding”的缩写,中文称为“高级音频编码”,被手机界称为“21世纪数据压缩方式”,AAC所采用的运算方式是与MP3的运算有所不同,AAC同时可以支持多达48个音轨,15个低频音轨,更多种取样率和比特率与及有多种言语的兼容能力,更高的译码效率,总括来说,AAC可以在对比MP3文件缩小30%的前题下提供更好的音质。好地适应IP和无线网络的应用,




AAC:“Advanced Audio Coding”的缩写,中文称为“高级音频编码”,被手机界称为“21世纪数据压缩方式”,AAC所采用的运算方式是与MP3的运算有所不同,AAC同时可以支持多达48个音轨,15个低频音轨,更多种取样率和比特率与及有多种言语的兼容能力,更高的译码效率,总括来说,AAC可以在对比MP3文件缩小30%的前题下提供更好的音质。

MP3:网络数字音乐的风潮是由MP3所引起的,MP3是MPEG1 Layer 3的缩写,据说是由德国某工作室在研究如何抓取CD音轨时衍生出的计算机文件格式。MP3本身是一种压缩与解压缩的计算方式,用来处理高比率的声音信息。它所生成的声音文件音质接近CD,而文件大小却只有其十二分之一。

Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外,相对于其它编解码,Speex也很适合网络应用,在网络应用上有着自己独特的优势。同时,Speex还是GNU工程的一部分,在改版的BSD协议中得到了很好的支持。Speex是基于CELP并且专门为码率在2-44kbps的语音压缩而设计的。Speex源码是基于c语音实现的(也有java实现,效率相对较低)。

5.开源视频库ffmpeg、handbrake、mencoder、vlc

基于Android移植ffmpeg的意义在于:

1.解决了Android媒体框架OpenCore的多媒体支持不足,虽然说Android平台的软解功耗大,但是从PC机的发展历史看,Android的视频处理以后也会走以硬解为主,软解为辅的路线。

2. 解决Android平台直播的问题,虽然Android支持RTSP/RTP的直播方案,但是这种方案主要是普遍用在电信设备上,基于互联网的海量视频服务提供者还是以http live streaming方案为主,测试时可以用ffmpeg将直播流打包成分段的ts流(如10秒钟),然后组织成m3u8文件实现完整的直播方案,而且互联网的直播内容还有很多是基于mms协议的,视频格式是wmv,要聚集这些内容都是离不开ffmpeg软解的。

6.flv、mkv、mp4、ts、mxf、mov多种格式的文件容器


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值