オーディオおよびビデオ処理のffmpegの開発実際の戦闘(2) - ffmpegのライブラリモジュールの紹介

1、ライブラリファイル

FFMPEG(3.2)8つのライブラリのライブラリーAの合計:

avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib

**ライブラリーのさまざまなバージョンは、将来の変化があるかもしれない、異なるがあるかもしれません。この例では、ffmpegの(3.2)で説明しています。

**など多少異なるウィンドウでファイル名でライブラリでのLinux:avcodec.lib - > libavcodec.a。

1.avutil.lib
ユーティリティコアツールライブラリ、最も基本的なモジュールの一つは、他のモジュールは、いくつかの基本的なオーディオおよびビデオ処理操作を行うためのライブラリに依存します。これは、ポータブルセキュリティ文字列関数、乱数生成、データ構造、追加の数学関数、暗号化、およびマルチメディア関連の機能を備えています。

2.avformat.lib
ファイルフォーマットおよびプロトコル・ライブラリ、および開発者のためのプロトコル及びフォーマットが透明であるように、プロトコル・レイヤ・デマルチプレクサ、マクサー層をカプセル化します。オーディオ、ビデオ及び字幕ストリーム多重分離(多重分離)は、共通のフレームワークを提供します。これは、マルチプレクサマルチメディアコンテナフォーマットの複数のデマルチプレクサを含みます。

また、アクセスメディアリソースへの複数の入力と出力のプロトコルをサポートしています。

3.avcodec.lib
コーデックライブラリ、コーデックカプセル化層が、いくつかは、自分のコーデックをライセンス、FFmpeはデフォルトlibx264、FDK-AACとして追加されていない持っている、ラメ( mp3) ライブラリーのような、しかしFFmpegのフレームで、他のサードパーティコーデックは、プラグインを追加する方法であってもよいし、開発者のための統一されたインターフェースを提供します。コードとして/フレームを復号し、オーディオ、ビデオエンコーダおよびデコーダ、字幕ストリーム、複数のフィルタと、複数のビットストリームを含みます。

4.avfilter.libの
オーディオおよびビデオライブラリフィルタは、API FFmpegのコーデック・プロセスを使用したオーディオエフェクトや特殊効果を処理するビデオを含んモジュールは、オーディオおよびビデオデータなどのエフェクト処理モジュールを作るために効率的に使用することができます。

5.avdevice.libの
多くの一般的なマルチメディア入力/出力装置から把持してレンダリングするためのデバイスのための共通フレームワークを提供し、入力と出力複数のデバイスをサポートする入出力デバイスライブラリ、Video4Linux2含む、VFW、DShowとALSA。

6.swresample.lib
オーディオリサンプリングは、基本的なデータ形式変換、サンプリングレートの複数のデジタルオーディオ情報のチャンネル数であってもよいです。

フォーマット変換は:サンプリングタイプ(例えば、16ビットの符号なし8ビットまたは浮動小数点サンプリングと契約からのサンプル)プロセスです。レイアウトに充填レイアウト(すべてのサンプルは、異なるチャネルで同一のインタリーブバッファに属する)(すべてのサンプルが同じチャネルに属するまたは専用バッファ「フラット」に格納されている)、変換器は、更なる処理を充填します。

リサンプリング:オーディオレートを高いサンプリングレート44100Hzから8000Hzまで、例えば、処理を変更します。オーディオサンプリングレートが低い変換損失を伴うプロセスに高いです。利用可能ないくつかのオプションとリサンプリングアルゴリズムがあります。

マトリクス化RE:プロセスのレイアウトは、モノラルからステレオに、例えば、チャンネルを変更することです。入力チャネルは、異なるゲインファクタと混合することを含むので、プロセスに有害である出力ストリームにマッピングすることができない場合。特定のオプションによって、様々な他の音声変換器(例えば、延伸及び充填)をイネーブル

7.swscale.lib
画像スケーリング及び色空間およびピクセルフォーマット変換、再調整のための手段は、RGBデータに変換されたYUVデータとすることができます。

再調整:ビデオのサイズを変更するプロセスを。再調整するために使用することができ、いくつかのオプションとアルゴリズムがあります。これは通常、非可逆過程です。
ピクセルフォーマット変換:画像変換処理YUV420PがRGB24に変換平面から、例えば、画像のフォーマットおよびカラースペースです。また、ハンドルは、平面レイアウトに(インターリーブにおける同じバッファの異なる平面に属する全ての画素は()内の専用バッファ又は「平面」に格納された全てのサンプルの同じ平面に属する)充填レイアウトから、すなわち、変換パックさ変換。プロセスに通常有害でソースとターゲット異なる色空間、もし。

8.postproc.lib
このモジュールは、我々は、フィルタを使用する場合は、このモジュールを開く必要があり、後処理のために使用され、フィルタは、このモジュールのいくつかの基本的な機能を使用します。

図2に示すように、一般的に使用される機能

av_register_all():すべてのコンポーネント登録
avformat_open_input():オープン入力ビデオファイル
avformat_find_stream_info():ビデオファイルの情報を取得
avcodec_find_decoderを():検索デコーダ
avcodec_open2():オープンデコーダ
av_read_frame():圧縮されたデータは、入力ファイルから読み込みます
avcodec_decode_video2():圧縮されたデータフレームを復号
avcodec_close():閉じるデコーダ
avformat_close_input():閉じる入力ビデオファイル

私たちは、将来の戦闘で各機能の使用方法を示しています。

3、各ライブラリ関数テーブル

追加します。

公開された43元の記事 ウォンの賞賛9 ビュー2654

おすすめ

転載: blog.csdn.net/x879014419/article/details/105265170