ワン:シンプルFFMPEGと彼の構成要素を理解します
1. FFmpegのは何ですか?
コール・インターフェースキットは、開発者のためのオーディオおよびビデオ処理の富を提供してFFmpegのは、また、オーディオおよびビデオコーデックの開発キットのためのツールであり、オーディオとビデオ符号化です
基本的なコンポーネント2.FFmpeg?
本質的になるFFmpegのフレームワーク等AVFormat / AVCodec / AVFilter / AVDevice、AVUtil含みます
(2.1)FFmpegのパッケージモジュールAVFormat
- ほとんどのAVFormatは、そのようなMP4 / FLV / KV / TSカプセル化形式の文書、などとして、非カプセル化およびカプセル化を含め、メディアパッケージフォーマットを達成しました
- RMTP / RTSP / MMS / HLS他のネットワークカプセル化プロトコル
(2.2)FFmpegのコーデックモジュールAVCodec
AVCodecは、両方のエンコードもデコードをサポートしてサポートしています。MPEG4をサポートするAVCodec加え、AACワードはメディアコーデック形式はまた、H.264(AVC)符号化などのサードパーティコーデックをサポート泣き言、エンコーダはx264のを必要とします
(2.3)にFFmpegはAVFilterをフィルタリング
3.ffmpeg FFmpegのソースコードは、実行可能ファイルをコンパイルした後に生成されます
メイン・ワークフロー・ffmpegのは比較的簡単です:
図1、図2をデカプセル化し、3デコーダ、符号4、パッケージ
次のように:
1>入力ソースを読みます
2>オーディオとビデオのカプセル化を解除
3>フレーム毎にオーディオおよびビデオデータをデコード
4>各フレーム符号化されたオーディオおよびビデオ
5>オーディオとビデオで再カプセル化
6>出力ターゲット
4.ffmpeg転送機能パッケージは、モジュールAVFormatに含ま
マルチプレクサとデマルチプレクサの動作ははlibavformatライブラリによって行わ。多くのマルチメディアファイルフォーマット、多くのパラメータは、マルチプレクサ/デマルチプレクサは共通しているパラメータ。
ffmpegのコーデック部関数はAVCodeによってlibavcodeライブラリによってエンコードデコード動作で主に達成されます。
それはSDL-1.2が含まれている場合5.FFMpegシステムは話すffplayのデフォルトのコンパイルプロセスああのようなものです
プレーヤ又は多くのグラフィカルな解析ツールオーディオおよびビデオデータとしてffplayは、ビデオ画像は、波形fffplay介して移動方向推定、オーディオデータ、等で見ることができます。
ffplayない唯一のプレーヤーでなく、ffmpegのコーデックエンジン/フォーマットエンジンのテスト、およびエンジンフィルタツールとして、あなたはまた、メディアパラメータ解析を可視化することができます。
FFmpegのスイートの6.ffprobeは、主にマルチメディア情報ファイルを表示するために使用されます
パラメータに応じて、どのように多くのフレームの各ストリームと各オーディオおよびビデオパケットのストリーム数を確認するために、各オーディオパケットまたはビデオパケット情報、ビュー番組情報、ストリーム情報の情報を表示する、ビデオ画素点の形式を表示します。
2:/オーディオおよびビデオ符号化/伝送プロトコルコンバータ/フィルタのサポートなどをパッケージ化するメディアフォーマットへのFFmpegの機能を提供します。以下は、メディアパッケージ形式の詳細な説明であります
MP4形式に2.1オーディオとビデオ
トランスコーディングは、オーディオとビデオ、トランスコーディングは、コンピューティングリソースの多くを取ることを、オーディオとビデオのパッケージに、オーディオとビデオとは異なり、パッケージを抽出した音声データや映像データに主に転送し、その後、別のパッケージのカプセル化フォーマットになっています資源のIO転送パッケージの主な職業、トランスコーディングは、より多くのメモリリソースを使用する一方、メインCPUのリソースをトランスコードしながら、
2.2 FFmpegのストリーミング
また、ストリーミングメディアの圧縮/記録/編集操作を処理するための「ストリーミング」として知られているオーディオとビデオストリーミング、。FFmpegのは、一般的なストリーミングメディア処理ツールであります
一般的なストリーミングメディアプロトコルであるRTMP / HTTP / RTSPおよび他のプロトコル
FFmpegのデフォルトのフローモードは、送信モードにビデオ/スクリーングリーン/グレースクリーン/モザイクの問題が発生し、考えることができるTCP、UDPトランスポートモードを落とさないようにするために、UDP伝送を引っ張ります。
ストリーミングサービスでは、HTTPサービスは、特に、オンデマンドで、最も一般的です。このようなHTTPライブストリーミングFLV輸送の使用などのHTTPサービスをサポートするHTTPおよびTSファイルM3U8を使用してHTTP TSトランスポートストリームまたはライブ伝送を使用してもライブ
FFmpegの消費より多くのリソースをエンコードし、パッケージを回すだけで、あなたが多くの時間を有効にする必要があり、コード化された複数のパッケージを出力し、比較的小さいです。早期のFFmpegは、(複数のトランスコーディング操作RTMP出力ストリームなど)への能力が、もう一つの方法は、多重化ストリームカプセル化フォーマットティーから出力された導管を通るオペレーティング・システムをサポートしていません。
2.3フィルタフィルタ
透かしビデオ/写真を追加し、あなたも、このような分割チャンネル、マルチチャンネルのマージ、分割とマージオーディオやビデオなどのオーディオストリームフィルタ、上で動作することができます。
2.4設備の取得
エンコーダとしてFFMPEGは、カプセル化され、次いで符号化され、データ取得FFmpegのローカルオーディオとビデオキャプチャデバイスを使用することができます。転送および他の操作。たとえば、私たちは、ビデオとカメラの画像をキャプチャすることができ、オーディオとマイクのデータをキャプチャ、エンコードのためのオーディオおよびビデオデータの取り込み、そして最終的にマルチメディアファイルまたはサーバに送信される映像と音声ストリームに符号化されたデータをパック(ストリームメディア);
Linuxのグラフィカル画像は、フレームバッファは、画像表示に特化。v412プライマリ収集装置のカメラ、カメラは、典型的には、複数のブローピクセルフォーマットを指します。