IOS FFmpegは、オーディオおよびビデオ・フレーム分析

ワン:シンプルFFMPEGと彼の構成要素を理解します

1. FFmpegのは何ですか?

コール・インターフェースキットは、開発者のためのオーディオおよびビデオ処理の富を提供してFFmpegのは、また、オーディオおよびビデオコーデックの開発キットのためのツールであり、オーディオとビデオ符号化です

基本的なコンポーネント2.FFmpeg?

本質的になるFFmpegのフレームワーク等AVFormat / AVCodec / AVFilter / AVDevice、AVUtil含みます

(2.1)FFmpegのパッケージモジュールAVFormat

  1. ほとんどのAVFormatは、そのようなMP4 / FLV / KV / TSカプセル化形式の文書、などとして、非カプセル化およびカプセル化を含め、メディアパッケージフォーマットを達成しました
  2. 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プライマリ収集装置のカメラ、カメラは、典型的には、複数のブローピクセルフォーマットを指します。

 

おすすめ

転載: blog.csdn.net/qq_33726122/article/details/91975728