【FFmpeg音视频编解码技术】开篇

来源:互联网 发布:手机皮卡堂软件 编辑:程序博客网 时间:2024/05/16 06:57

作者:郭孝星
微博:郭孝星的新浪微博
邮箱:guoxiaoxingv@163.com
博客:http://blog.csdn.net/allenwells
Github:https://github.com/guoxiaoxing

FFmpeg(Fast Forward Moving Picture Experts Group)的是全球领先的多媒体框架,能够解码,编码,转码,复用,解复用,数据流,支持基本所有的音视频格式。

FFmpeg官方网站

这里写图片描述

一 FFmpeg简介

FFmpeg功能之强大,支持格式之广泛使得它被用来各种编解码技术中,如下所示:

  • 使用FFmpeg作为内核视频播放器:Mplayer,ffplay,射手播放器,暴风影音,KMPlayer,QQ影音…
  • 使用FFmpeg作为内核的Directshow Filter:ffdshow,lav filters.
  • 使用FFmpeg作为内核的转码工具:ffmpeg,格式工厂

FFmpeg包含的工具如下图所示:

这里写图片描述

  • ffmpeg:视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件
  • ffserver:基于HTTP、RTSP用于实时广播的多媒体服务器.也支持时间平移
  • ffplay:用SDL和FFmpeg库开发的一个简单的媒体播放器
  • ffprobe:一个简单的多媒体流分析器

  • libavcodec:一个包含了所有FFmpeg音视频编解码器的库。为了保证最优性能和高可复用性,大多数编解码器从头开发的;
    libavformat一个包含了所有的普通音视格式的解析器和产生器的库。

FFmpeg包含以下库,具体功能如下所示:

  • libavcodec——包含全部FFmpeg音频/视频编解码库
  • libavformat——包含demuxers和muxer库
  • libavutil——包含一些工具库
    libpostproc——对于视频做前处理的库
    libswscale——对于视频作缩放的库

二 FFmpeg功能

2.1 本地编码器

FFmpeg项目本地的编码器:

Snow
FFV1

2.2 标准

FFmpeg已实现的音视频标准有:

ITU-T视频标准:H.261,[5] H.262/MPEG-2 Part 2, H.263[5]和H.264/MPEG-4 AVC[5]
ITU-T音频编解码器标准:G.711 µ-law, G.711 A-law, G.721(也叫G.726 32k), G.722, G.722.2(也叫AMR-WB), G.723(也叫G.726 24k和40k)和G.726
ISO/IEC MPEG视频标准:MPEG-1 Part 2, H.262/MPEG-2 Part 2, MPEG-4 Part 2和H.264/MPEG-4 AVC
ISO/IEC MPEG音频标准:MP1, MP2, MP3, AAC, HE-AAC和MPEG-4 ALS
ISO/IEC/ITU-T JPEG图像标准:JPEG和JPEG-LS
SMPTE视频标准:VC-1(也称作WMV3), VC-3(也称作AVID DNxHD)和DPX图像
SMPTE音频标准:SMPTE 302M
DVD论坛的相关标准 / 杜比实验室的音频编解码器:MLP(也称TrueHD)和AC-3
3GPP音频编码器标准:AMR-NB, AMR-WB(也叫G.722.2)
GSM相关的语音信号编解码器:Full Rate
Windows Media Player相关的视频编解码器:Microsoft RLE, Microsoft Video 1, Cinepak, Indeo 2, 3和5,[5] Motion JPEG, Microsoft MPEG-4 v1, v2和v3, WMV1, WMV2 and WMV3(也称VC-1)
Windows Media Player相关的音频编解码器:WMA1, WMA2和WMA Pro
Windows Media Player相关的语音信号编解码器:WMA Voice和MS-GSM
RealPlayer相关的视频编解码器:RealVideo 1, 2, 3和4
RealPlayer相关的音频编解码器:RealAudio 3, 6, 7, 8, 9和10
RealPlayer相关的语音信号编解码器:RealAudio 1, 2 (G.728的派生), 4和5
QuickTime相关的视频编解码器:Cinepak, Motion JPEG和Sorenson 3 Codec
QuickTime相关的音频编解码器:QDesign音乐编解码器2和ALAC
Adobe Flash Player相关的视频编解码器:Sorenson 3 Codec, VP6和Flash Video (FLV)
Adobe Flash Player相关的音频编解码器:Adobe SWF ADPCM和Nellymoser Asao
Xiph.Org: Theora, Speex(通过libspeex实现), Vorbis和FLAC
Sony: ATRAC1和ATRAC3[5]
NTT: TwinVQ
On2: Duck TrueMotion 1, Duck TrueMotion 2, VP3, VP5,[5] VP6[5]和VP8
RAD Game Tools: Smacker video和Bink video
Truespeech
RenderWare: TXD[6]
The default MPEG-4 codec used by FFmpegs the FourCC of FMP4.

2.3 格式

FFmpeg已实现的音视频标准有:

ASF
AVI
BFI[7]
FLV
GXF, General eXchange Format, SMPTE 360M
IFF[8]
RL2[9]
ISO base media file format(包括QuickTime, 3GP和MP4)
Matroska(包括WebM)
Maxis XA[10]
MPEG program stream
MPEG transport stream(including AVCHD)
MXF, Material eXchange Format, SMPTE 377M
MSN Webcam stream[11]
Ogg
OMA[12]
TXD[6]
WTV

2.3 协议

FFmpeg已实现的协议标准有

IETF标准:TCP, UDP, Gopher, HTTP, RTP, RTSP和SDP
苹果公司的相关标准:HTTP Live Streaming
RealMedia的相关标准:RealMedia RTSP/RDT
Adobe的相关标准:RTMP, RTMPT(由librtmp实现),RTMPE(由librtmp实现),RTMPTE(由librtmp)和RTMPS(由librtmp实现)
微软的相关标准:MMS在TCP上和MMS在HTTP上

0 0
原创粉丝点击