【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上
- 【FFmpeg音视频编解码技术】开篇
- FFmpeg 音视频编解码开源库
- ffmpeg 音视频 编解码例子源码
- FFmpeg音视频编解码实践总结
- FFmpeg音视频编解码实践总结
- 音视频之路之开篇——视音频编解码技术零基础学习方法
- ffmpeg 命令行视频编解码
- 基于ffmpeg的简单音视频编解码的例子
- 基于ffmpeg的简单音视频编解码的例子
- 视频编解码技术小结
- 视频编解码技术介绍
- 【 音视频编解码技术】 音视频同步播放原理
- 音视频编解码技术之视频编码基本概念介绍
- 音视频编解码技术之视频编码基本概念介绍
- 音视频编解码
- 求ffmpeg视频编解码兼职
- FFmpeg 视频、音频编解码的例子
- 视频编解码,FFMPEG,RTP问题汇总
- 5步解决移动设备上的300ms点击延迟
- MySQL重连,连接丢失问题解决
- Mysql CPU占用高的问题解决方法小结
- MySQL表与数据向Oracle移植(使用Oracle SQL Developer工具)
- Android实现多条Toast快速显示(强制中止上一条Toast的显示)
- 【FFmpeg音视频编解码技术】开篇
- “钱三篇”后续之汇率(下)
- Android手机联系人源码(添加联系人页面一个功能)修改
- java的四舍五入与保留位
- hashtable和hashmap两点典型区别
- Go语言自己实现的异步小log程序.
- StringUtils
- android flag分析
- Python之从零开始:什么是Python