コーデック
wikipedia より:
- コーデック (Codec) は、符号化方式を使ってデータのエンコード(符号化)とデコード(復号)を双方向にできる装置やソフトウェアなどのこと。
一般的に、マルチメディアアプリケーションにおいて音声や動画ストリームをエンコード・デコードするためにコーデックが使われます。エンコードされたストリームを再生するために、ユーザーは適切なコーデックをインストールする必要があります。
この記事ではコーデックとアプリケーションのバックエンドだけを扱います; プレイヤーのリストはアプリケーション一覧を見て下さい (MPlayer や VLC、mpv がよく使われています)。
目次
要件
マルチメディアを再生するには2つのコンポーネントが必要です:
- メディアプレイヤー
- 適切なコーデック
メディアプレイヤーをインストールしている場合は必ずしもコーデックをインストールする必要はないこともあります。例えば、MPlayer は依存パッケージとして大量のコーデックをインストールします。また、内蔵コーデックも持っています。
コーデック一覧
オーディオ
こちらも参照 Wikipedia:Comparison of audio coding formats
可逆オーディオコーデック
- Apple Lossless (ALAC) — Apple が開発し、Apple のすべてのプラットフォームとデバイスに展開されている可逆オーディオ圧縮コーデック。
- FLAC — フリーの可逆オーディオコーデック。
非可逆オーディオコーデック
フォーマット | エンコード | デコード | |
---|---|---|---|
AAC | #AAC | ||
ATSC A/52 | aftenAUR | a52dec | |
CELT | celtAUR | ||
MPEG-1 | libmad | ||
MP3 | lame | ||
Musepack (MPC) | – 1 | libmpcdec | |
Opus | opus | ||
Vorbis | libvorbis | ||
音声コーデック | |||
AMR | opencore-amr | ||
Speex | speex |
- mppenc はパッケージ化されていません。
- CELT — 低レイテンシー向けに最適化された、オープンで著作権使用料不要の非可逆オーディオコーデック。
- LAME — MP3 エンコーダとグラフィカルなフレームアナライザ。
- liba52 — ATSC A/52 ストリームのデコードに使うフリーのライブラリ。
- libdca — DTS Coherent Acoustics ストリームのデコードのためのフリーなライブラリ。
- MAD — 高品質の MPEG オーディオ デコーダー。
- Musepack — 高い品質に重点が置かれている音声圧縮フォーマット。可逆圧縮ではありませんが、ブラインドテストで、オリジナルの wave ファイルと小さくなった MPC ファイルの差を聞き分けられないくらいに設計されています。MPEG-1 Layer-2 / MP2 アルゴリズムをベースに1997年から急速に開発がなされ、今では最適化がほどこされパテントがないコードを含む段階にまで発展しています。
- opencore-amr — Adaptive Multi Rate (AMR) 音声コーデックのオープンソース実装。
- Opus — 完全にオープンで、ロイヤルティフリー、多目的の音声コーデック。Opus はインターネットを介した音楽の転送などには向きませんが、ストレージ・ストリーミングアプリケーションにも使われることを想定しています。Skype の SILK コーデックや Xiph.Org の CELT コーデックからの技術を合体させており Internet Engineering Task Force (IETF) によって RFC 6716 として標準化されています。
- Speex — 通話向けに設計されたパテントフリーの音声圧縮フォーマット。
- Vorbis — 完全にオープン・パテントフリーでプロフェッショナルな音声エンコード・ストリーミング技術。
AAC
Wikipedia から:
- Advanced Audio Coding (AAC) は、非可逆デジタルオーディオ圧縮のための独自のオーディオコーディング標準です。MP3 形式の後継として設計された AAC は、通常、同じビットレートで MP3 よりも優れた音質を実現します。
- FAAC — 独自の AAC オーディオエンコーダー。
- FAAD2 — ISO AAC オーディオデコーダー。
- Fraunhofer FDK AAC — OpenCORE フレームワークの実装 Advanced Audio Coding (AAC) エンコーダー。Fraunhofer AAC デコーダーとエンコーダーの変更されたライブラリ。
- https://sourceforge.net/projects/opencore-amr/ || libfdk-aac (コーデックライブラリ) fdkaac (libfdk-aac の CLI フロントエンド)
- Nero AAC — Nero AAC 基準品質の MPEG-4 および 3GPP オーディオコーデック。(非推奨)
イメージコーデック
- JasPer — 新しい JPEG-2000 Part-1 標準で指定されたコーデックのソフトウェアベースの実装。
- OpenJPEG — オープンソースの JPEG 2000 コーデック。
- WebP — 非可逆圧縮と可逆圧縮の両方を使用する画像形式。現在は Google によって開発されています。
- AV1 Image File Format (AVIF) — AV1 ビデオコーデックに基づく画像形式。
- 高効率画像ファイル形式 (HEIF) — HEVC ビデオコーデックに基づく画像形式。多くの場合、HEIC コンテナー内にあります。
ビデオコーデック
こちらも参照 Wikipedia:Comparison of video codecs
フォーマット | コーデックライブラリ |
---|---|
AV1 | aom, dav1d (decode), rav1e (encode), svt-av1 |
AVS2 | davs2AUR (decode) |
Daala | daala-gitAUR |
Dirac | schroedinger |
DV | libdv |
H.265 | x265, x265-hgAUR |
libde265, libde265-gitAUR | |
H.264 | x264, x264-gitAUR |
MPEG-1 | libmpeg2 (decode) |
MPEG-2 | |
MPEG-4 | Xvid (xvidcore) |
Theora | libtheora |
VP8, VP9 | libvpx, libvpx-gitAUR |
- AV1 — AOMedia Video 1 (AV1) は、Google の VP9、Mozilla の Daala、Cisco の Thor の後継コーデックです。aom は、エンコードとデコードの両方のリファレンス実装です。 dav1d はパフォーマンス重視のデコーダです。rav1e はパフォーマンス重視のエンコーダです。ほとんどのベンチマークは、rav1e よりも svt-av1 の方が優れたパフォーマンスを示しています。
- Daala — Xiph.Org Foundation が開発中で、Mozilla Foundation が後援しているビデオコーデックの研究。このプロジェクトの目標は、h.265 よりも優れた技術的パフォーマンスを備えた、自由に実装、使用、配布できるデジタルメディアフォーマットと参照実装を提供することです。
- libde265 — h.265 ビデオコーデックのオープンソース実装。
- libdv — Quasar DV コーデック (libdv) は、DV ビデオ用のソフトウェアコーデックです。
- libmpeg2 — MPEG-1 および MPEG-2 ビデオストリームをデコードするためのライブラリ。
- Schrödinger — 低解像度の Web コンテンツの配信から HD 以上のブロードキャスト、ほぼロスレスのスタジオ編集まで、幅広い用途向けに設計された、ロイヤリティフリーの高度なビデオ圧縮形式です。
- Theora — Xiph.org によって開発されたオープンな動画コーデック。
- x264 — H264/AVC ビデオストリームのエンコードのためのフリーのライブラリ。
- x265 — ビデオストリームを H.265/High Efficiency Video Coding (HEVC) 形式にエンコードするためのオープンソースプロジェクトとフリーのアプリケーションライブラリ。
- http://x265.org/ || x265 x265-hgAUR
- Xvid — オープンソースの MPEG-4 ビデオコーデック。
バックエンド
GStreamer
- GStreamer はメディアを扱うコンポーネントのグラフを組み立てるためのライブラリです。サポートしているアプリケーションは単純な Ogg/Vorbis の再生や音声・動画のストリーミングから複雑な音声 (ミキシング) や動画 (ノンリニア編集) の処理まで幅広く及びます。
つまり、GStreamer は バックエンド や フレームワーク として多くのメディアプレイヤーによって利用されています。GStreamer の記事を参照してください。
xine
http://www.xine-project.org/about より:
- xine はフリーの (GPL ライセンスの) ハイパフォーマンスで、携帯性を持ち、再利用可能なマルチメディア再生エンジンです。xine 自体は使いやすいように共有ライブラリで作られており、さまざまなアプリケーションでスムーズな動画再生・動画処理のためにパワフルな API が使われています。
GStreamer の代わりとして、多くのメディアプレイヤーでは xine-lib によって含まれている xine バックエンドを使うように設定することが可能です。
xine プロジェクト自体もビデオプレイヤーを提供しています, xine-ui。
libavcodec
libavcodec は FFmpeg プロジェクトの一部です。さまざまなビデオ・オーディオコーデックを含んでいます。libavcodec コーデックは MPlayer や VLC などのメディアプレイヤーに含まれているため、ffmpeg パッケージをインストールする必要はありません。
ヒントとテクニック
MPlayer バイナリコーデックのインストール
最後の手段として、MPlayer のバイナリコーデックをインストールすることができます。
再生できないファイルがあるときは http://www.mplayerhq.hu/design7/dload.html に行って、ファイルを再生するのに必要なコーデックをインストールしてください。
また、codecsAUR[リンク切れ: パッケージが存在しません] や codecs64AUR という名前で AUR にも存在します。
Totem プレイヤで H264, mpg4, Musepack (.mpc) がない
"H264 プラグインが見つからない" という警告が Totem メディアプレイヤーに表示されるときは、gst-libav をインストールして Gstreamer の libav ライブラリをインストールすることで直ります。