Libavcodec

libavcodec是一款LGPL自由软件编解码库，用于视频和音频数据的编解码工作。带有这个名字的库有FFmpeg项目和Libav项目，但是它们却彼此不兼容。

libavcodec是个集成了许多开源多媒体应用和框架。常见的MPlayer、xine和VLC媒体播放器都使用它作为它们的主要内置解码引擎，用于许多音频视频格式在所有支持的平台上的重放。它也被ffdshow试用解码器用作主要的解码库。libavcodec也被用于视频编辑和转换应用，例如Avidemux、MEncoder或者Kdenlive既用它解码也用其编码。

libavcodec包含了解码器和为实现若干专有格式而存在的编码器。其本身在逆向工程方面的工作就是libavcodec发展成长的一部分。在标准的libavcodec框架下，有着这些有效的编解码器为使用原始的编解码器带来很大的益处，最明显的就是提升了移植性。另一些方面也增加了它的表现力，因为libavcodec包含了一份标准库，它高度优化了常见建立块的实现，比如DCT和色彩空间转换。但是，即便libavcodec致力于将字节提取级别的解码来实现最终结果，这样的重现中出现的错误和丢失的特征有时候能导致回放固定文件的兼容性问题。

## 已实作的影像编解码器

libavcodec包含如下的编解码：

- Animated GIF
- Asus v1与v2
- AVS（仅解码功能）
- AV1
- CamStudio（仅解码功能）
- CineForm（仅解码功能）
- Cinepak（仅解码功能）
- Creative YUV（CYUV,仅解码功能）
- Dirac（仅解码功能，编码则经由libdirac以及libschroedinger）
- DNxHD
- Duck TrueMotion v1与v2（仅解码功能）
- Flash Screen Video
- FFV1
- Flash Screen Video v1 and v2
- H.261
- H.262/MPEG-2 Part 2
- H.263
- H.264/MPEG-4 AVC（原生解码，编码则透过x264）
- Huffyuv
- id Software RoQ Video
- Intel Indeo（仅解码功能）
- Lagarith（仅解码功能）
- LOCO（仅解码功能）
- Mimic（仅解码功能）
- MJPEG
- MPEG-1
- MPEG-2/H.262
- MPEG-4 Part 2（格式多用于DivX与Xvid）
- On2 VP3（仅解码功能）
- On2 VP5（仅解码功能）
- On2 VP6（仅解码功能）
- On2 VP8（native decoder, encoding through libvpx）
- On2 VP9 (原生解码，编码则libvpx-vp9)
- Apple ProRes
- Apple Computer QuickDraw（仅解码功能）
- QuickTime: Graphics（仅解码功能）, Video（decoding only）and Animation（RLE）
- RealVideo RV10 and RV20
- RealVideo RV30 and RV40（仅解码功能）
- Smacker video（仅解码功能）
- Snow
- Sorenson SVQ1
- Sorenson SVQ3（仅解码功能）
- Theora（原生解码，编码则libtheora）
- VC-1（仅解码功能）
- Sierra VMD Video（decoding only）
- VMware VMnc（decoding only）
- Westwood Studios VQA（decoding only）
- WMV—版本7与8
- WMV—version 9 / VC-1（仅解码功能）
- Windows Media Video Image（仅解码功能）
- Windows Media Video Screen 1 and 2（decoding only）
- Wing Commander/Xan Video（仅解码功能）

## 已实作的音频编解码器

libavcodec含盖列下的音频编解码格式：

- 8SVX（仅解码功能）
- AAC
- AC-3
- AMR（仅解码功能）
- AMR-WB（仅解码功能）
- Apple Lossless
- ATRAC3（仅解码功能）
- Cook Codec（仅解码功能）
- DTS（编码仍在实验中）
- EA ADPCM（仅解码功能）
- E-AC-3
- Enhanced Variable Rate Codec（仅解码功能）
- FLAC
- GSM 06.10（原生解码功能，编码则经由libgsm）
- Intel Music Coder and Indeo Audio Coder（仅解码功能）
- Meridian Lossless Packing / Dolby TrueHD
- Monkey's Audio（仅解码功能）
- MPEG-1 Audio Layer I（仅解码功能）
- MP2
- MP3（原生解码功能，编码系透过LAME）
- Nellymoser Asao Codec in Flash
- Opus透过外部的libopus
- QCELP（仅解码）
- QDM2（仅解码）
- RealAudio 1.0
- RealAudio 2.0（仅解码）
- Shorten（仅解码）
- Truespeech（仅解码）
- TTA
- TwinVQ（仅解码）
- Vorbis
- WavPack
- Windows Media Audio 1与2
- Windows Media Audio 9 Lossless（仅解码）
- Windows Media Audio 9 Professional（仅解码）
- Windows Media Audio Voice（仅解码）

## 引用libavcodec的库

- libavformat（FFmpeg之部分）
- libgegl（GEGL可选之部分）
- libgimp（GIMP之部分）
- libmpcodecs（MPlayer之部分）
- libmpdemux（MPlayer之部分）

## 使用libavcodec的应用程序

### 影像播放器

- FFplay
- MPlayer
- MPC-HC 和 MPC-BE
- VLC
- xine
- PotPlayer
- IINA

### 音频播放器

- Audacious（Uses in audacious-plugins's ffaudio）
- Rockbox（仅FLAC编码）
- XMMS2

### 多媒体播放器

- Gnash
- Moonlight
- swfdec

### 影像编辑

参见影像编辑软件比较表

- Avidemux
- Cinelerra
- Kdenlive
- Kino

### 视觉效果

- Jahshaka

### 音频编辑

- Audacity（自1.3.6版以后）
- SoX（可选）

### 影像转换

- avconv
- FFmpeg
- HandBrake
- MEncoder
- SUPER
- Transcode
- ffmpeg2theora

### 视讯库

- GPAC
- Media Lovin' Toolkit

### 光碟制作

- K3b

### 图库

- GEGL
- ImageMagick

### 3D图形编辑器

- Blender

### VoIP

- Ekiga
- QuteCom
- Linphone

### 多媒体流服务器

- FFserver
- VLC media player

### 多媒体架构

- ffdshow（将 libavcodec 包装为 DirectShow 滤镜，并添加后处理工序以增强图像质量；安装后可自动为 Windows 上使用 DirectShow 架构的播放器所调用，包括 Windows Media Player、Media Player Classic、Winamp 等。ffdshow 同时也将 libavcodec 包装为 Video for Windows 滤镜，这是大多数视频编辑软件所用的架构。）
- LAV Filters
- GStreamer via the GStreamer FFmpeg plugin
- Perian
- Bellagio OpenMAX Integration Layer – opensource OpenMAX IL API implementation

### 电脑视讯库

- OpenCV

### 浏览器

- Google Chrome

### 媒体中心

- MythTV
- Plex
- XBMC

### 撷取萤幕

- xvidcap

### 设备工具集

- BitPim – 用于CDMA手机的工具集

### 闭路电视

- ZoneMinder – 摄像头安全套件
- Motion – 摄像头安全/监视程序

### 游戏

- Performous –音乐游戏包含美声，乐团，以及舞蹈。
- StepMania
- Ultrastar
- osu!

### 其他

- CorePlayer
- FreeJ
- Ingex Studio – used by BBC
- PulseAudio – includes only resamplers code

## 基本资料

- 日语原文：libavcodec
- 开发者：FFmpeg team
- 软件版本周期：58.54.100（包含于 FFmpeg 4.1.2）
- 编程语言：C99
- 操作系统：适用于Windows、OS X和Linux，也可为其它操作系统编译。
- 平台：适用于x86平台
- 语言：英语
- 类型：多媒体编解码库
- 许可协议：GNU LGPL 2.1或GNU GPL 2+ or non-redistributable if compiled as such