首先让我们一起了解下音视频的基础知识。

1、视频编码:

    视频编码是指通过特定的压缩技术,将某个视频文件转换成另外一种视频格式文件的方式。目前最重要的编解码标准有:

标准

类型

国际电联

H.261、H.263、H.264

运动图像专家组

M-JPEG

国家标准化组织运动图像专家组

MPEG系列

Real-Networks

RealVideo

微软

WMV

Apple

QuickTime

android更改视频 android 视频格式_视频编码


android更改视频 android 视频格式_压缩率_02

从某种意义上讲视频编码可以分为两个系列:

  • MPEG系列:

MPEG系列视频编码方面

介绍

MPEGI

VCD就是用的这种

MPEG2

DVD就是用的这种

MPEG4

DVDRIP使用的都是他的变种例如:DivX,XviD等

MPEG4 AVC

正热门

MPEGI

VCD就是用的这种

MPEG系列音频编码方面

介绍

MPEG Audio Layer 1/2

\

MPEG Audio Layer 3

我们经常用的mp3

MPEG-2 AAC

\

MPEG-4 AAC

\

注:DVD音频技术没有采用MPEG的;

  • H.26X 系列:

注意:只有视频编码。

(MPEG4 ACV合作的结晶)

2、音频编码:

    常见的音频格式有AAC、MP3、AC3;

  • AAC:一种专为声音数据设计的文件压缩格式,与MP3不同,他采用了全新的算法进行编码,更加高效,具有更高的“性价比”。声音质量几乎没有明显的降低的前提下,保证了文件的小巧型。苹果iPod、诺基亚手机也支持AAC格式的音频文件。但是,AAC属于有损压缩;
  • MP3: 是一种音频压缩技术,全称是动态影像专家压缩标准音频层面(Moving Picture Experts Group Audio Layer III),简称MP3。被设计用来大幅度地降低音频数据量。利用MP3技术,将音乐一1:10甚至1:12的压缩率,压缩成容量较小的文件,对于大多数用户来说,重放的音质与最初的不压缩音频没有明显下降;MP3利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同频段使用不同的压缩率,对高频信号使用大压缩率升至忽略信号,对低频信号使用小压缩率,保证信号不失真。等于抛弃了人耳基本听不到的高频声音,只保留了能听到的低频部分,从而实现1:10甚至1:12的压缩率压缩。
  • AC3:全称为Audio Coding Version 3,是Dolby实验室锁发展的有损音频编码格式。AC3被广泛应用于5.1省道,是Dolby Pro Logic的继承者,不同的地方在于AC3提供了6个独立的声道而Pro Logic混合其环绕声道。AC3以348~448kb/s的码率应用于激光唱片和DVD,也经常以640kbs/s的码率应用于电影院。Dolby AC3提供的环绕声系统由5个全频域声道和一个超低音声道组成,被称为5.1声道。5个全频域声道包括左前,中央,右前,左后、右后。超低音声道主要提供一些二外的低音信息,是特殊场景例如爆炸,撞击等的声音效果更好。

3、多媒体播放组件:

    Android多媒体播放组件包含MediaPlayer、MediaCodec、OMX、StageFright、AudioTrack等;

android更改视频 android 视频格式_视频编码_03

  • MediaPlayer:播放控制。
  • MediaCodec:音视频编解码。
  • OMX:多媒体部分采用的编解码标准。
  • StageFright:是一个播放框架、替代之前的OpenCore,主要是做了一个OMX层,仅仅对OpenCore的omx-component部分做了引用。StageFright是在MediaPlayerService这一层加入的,和OpenCore是并列的。StageFright在Android中是以共享库的形式存在的(libstagefright.so),其中的module–NuPlayer/AwesomePlayer 可用来播放音视频,提供了许多API,可以让生成的应用程序(JAVA/JNI)调用。
  • MediaPlayer:音频播放。

4、多媒体框架及解决方案:

   常见的播放框架及解决方案有VLC.FFmpeg,GStreamer等。

VLC

Video LAN Client 开源的跨平台多媒体播放器及框架

FFmpeg

多媒体解决方案,不是多媒体框架,广泛应用于音视频开发中

GStreamer

一套构建流媒体应用的开源多媒体框架