「ffmpegの基礎」中国語版 - 11フォーマット変換

11.フォーマット変換

フォーマット:フォーマット

最も一般的な使用のffmpegツールとオーディオとビデオ関連のフォーマット変換。フォーマットは-fオプションは、一般的に、出力ファイルの前に配置されている指定するために使用することができるが、生の入力(元の入力ビデオデータ、カメラから取得した、すなわち、元の符号化されていない画像)を用いる場合には、入力上に配置することができますファイルの前に。私たちは、「ディスプレイのヘルプや特性(ヘルプの表示と機能)」で説明するように、フォーマットを確認するために、コマンドラインを使用することができます。

メディアプレゼンテーション形式

ファイル形式

これは、ドキュメント、および他のビデオまたはオーディオメディアデータタイプを格納することが可能な特定のメディアファイルフォーマットを指します。格納されたデータの単一種類の部分が、いくつかの形式があるが、複数のストリームに関して様々なタイプのデータを格納することができる、請求、メディアのファイルフォーマットは、複数のデータタイプを格納することができるコンテナ(容器)と呼ばれます。私たちは、使用可能なメディアフォーマットを表示するためにffmpegの-formatsコマンドを使用することができます。

動画のファイル形式は、一般的に、オーディオおよびビデオストリームを含めることができます。しかし、いくつかの特別な形式がありますが、唯一のオーディオストリームが含まれていてもよい、彼らは「デジタルオーディオ(デジタルオーディオ)」のセクションで説明します。

メディアコンテナ

メディアコンテナパッケージは特殊なファイルタイプで、その主な機能は、複数種類のためのメディアストリームと関連付けられたメタデータを格納する機能です。オーディオとビデオを符号化および復号化するための方法(アルゴリズム)の様々な使用することができるので、より複雑な、従って容器は、ファイル内のメディアストリームを複数格納するための便利な方法を提供します。このようないくつかのXMFなどAIFF、WAV、などの容器、オーディオ保存することができ、かつそれが唯一のTIFF画像として保存することができます。しかし、コンテナのほとんどは、オーディオ、ビデオ、キャプション、メタデータなどを保存することができます。下記に記載されているすべてのビデオコンテナは、SubRipや高度な変電所アルファとして字幕フォーマットの数によってサポートされています。

ここに画像を挿入説明

コピーまたは-c::Vのコピーオプション容器の内部を変更し、変更をコーディングするだけなら、私たちは、-cコピーまたは-cを使用することができます。

ffmpeg -i input.avi -q 1 -c copy output.mov

翻訳者注:メディアコンテナフォーマットやメディアは、メディアファイルの種類で同じものを参照してください。AVI、MP4などというようにそのような。

トランスコード変換(トランスコード変換)

トランス(トランスコード)と呼ばれる出力ファイルに入力ファイルの処理のffmpegの流れ、。それは、特定のデータを変更するために、メディアフォーマットは不変に維持することができるフォーマットの間の変換のステップを含んでもよいです。符号化されたデータ・パケットを圧縮または伸長することができる、特定の圧縮符号化を指定する必要があり、使用されるべきです。トランスコードプロセスフローは、いくつかの部分に分割されてもよいです。

  • demuxさ(逆多重化:、デマルチプレクサをデカプセル化、逆多重化、マルチプロセシングへ):最高のデマルチプレクサDEMUXからのライブラリはlibavformatファイルの拡張子(例えば、.AVI .MPG、など)を選択(に基づく:マルチをこれにより、符号化データ・パケット(符号化データパケット)を生成し、入力ファイルを処理するためのデマルチプレクサ)。
  • (復号化)復号:適切な復号器(デコーダ)パケットを使用して、データのフレームが圧縮されていない発生しない。-cコピーまたは-codecコピーオプション場合、復号処理(フィルタリングなし同じプロセス)。
  • オプションのフィルタリング:デコードされたフレームは、フィルタを指定するように変更されてもよいです。
  • エンコード(符号化):非圧縮データパケットに選択された符号化フレームデータエンコーダ(エンコーダ)を使用。
  • マルチプレクシング(多重化:カプセル化を、マルチプロセッシング多重化)多重化パケットは、選択されたメディアフォーマットとなります。

ここに画像を挿入説明

オプションを使用ffmpegのフォーマット変換は、汎用や独自に分けることができ、一般的なオプションは、コーデック、任意の容器にセットし、デバイス、プライベートとだけ特定のコンテナ、コーデックとデバイスに設定することができますすることができますすることができます。

コーデックの説明

コーデック:コーデック、コーデック

​ codec 这个单词是从 coder-decoder 或 encoder-decoder 简化来的,意思就是编码解码器,它的含义是使用一个设备或者软件去编码和解码一个视频流或者音频流,也就是使用某种算法来压缩数据和还原数据。FFmpeg 中 编解码器的定义是一个 media bitstream format(bit:比特位),也就是说,编解码器指的是一个媒体流(本质是一个比特位组成的数据流)的格式,而decoder和encoder是该格式的实际设备和软件工具。下面的命令可以显示可用的 codec :

  • ffmpeg -codes:显示所有可用的编码器和解码器

  • ffmpeg -decoders:仅显示解码器

  • ffmpeg -encoders:仅显示编码器

    在命令行中,我们可以使用 -c 或者 -codec 选项来指定 codec ,语法如下:

 -codec[:stream_specifier] codec_name

​ 我们可以为输入和输出文件指定 codec,如果输出文件包含多个流,每个流可以使用一个不同的 codec 。如果我们不指定输出文件的 codec ,那么ffmpeg会选择默认的 codec 。下面列出了常见媒体格式的默认 codec :

ここに画像を挿入説明

覆盖同名输出文件

​ 如果在 ffmpeg 命令中指定的输出文件名称已经存在,控制台会询问我们是否覆盖原有的旧文件。为了避免这个询问流程,我们可以用 -n 选项来表示不询问并采用不覆盖操作,-y 选项表示不询问并采用覆盖操作。例如,如果想要默认去覆盖旧的文件,那么可以使用如下命令:

ffmpeg -y -i input.avi output.mp4

格式转换的通用选项

​ 通用选项可用于任意 codec,container,device。下表就是在格式转换中与编码解码器相关的通用选项的详细说明,在 target 这一列仅能包含 5 个字母,它们限制了对应选项的使用范围。而每个字母的含义表示,该选项可以用在 encoding(E),decoding(D),video(V),audio(A),subtitles(S)。

ここに画像を挿入説明

ここに画像を挿入説明

ここに画像を挿入説明

ここに画像を挿入説明

​ 在《Presets for Codecs》一节中,有如何使用上述部分选项的例子。为了将多个输出文件的质量保持一致,我们可以使用 -q 或者 -qscale[:stream_specifier] 选项来指定输出文件的质量,它的取值为 1 到 31 ,其中 1 表示使用最高质量。

转换的私有选项

​ 通用选项可以设置为任意 codec,container,devices,但私有选项只能为特定的 codec,container,devices 设置。

MPEG-1 video encoder

​ mpeg1video encoder 除了通用选项之外,还能使用下表中的私有选项:

ここに画像を挿入説明

MPEG-2 video encoder

​ mpeg2video encoder 除了通用选项之外,还能使用下表中的私有选项:

ここに画像を挿入説明

MPEG-4 video encoder

​ mpeg4 encoder 可以使用的私有选项在上述两个表中均有描述,分别是:

  • data_partioning
  • alternate_scan
  • mpv_flags
  • luma_elim_threshold
  • chroma_elim_threshold
  • quantizer_noise_shaping

libvpx video encoder

​ libvpx 可能会被 WEBM format 使用,其私有选项如下:

ここに画像を挿入説明

AC-3 audio encoder

​ ac3 encoder的私有选项如下:

ここに画像を挿入説明

VCD,SVCD,DVD,DV,DV50的简易编码

​ 当我们要转化为特定的媒体类型,如VCD,SVCD,DVD,DV,DV50等,我们可以使用特殊的 -target 选项,此时我们仅需要这一个选项,而不用设置相关的大量选项,相当于 -target 这个选项帮我们做了一个整体的设置。-target 可取的值有:

ここに画像を挿入説明

​ 所有需要的参数,如帧率,长宽比,比特率等等都会根据我们指定的媒体格式进行自动设置,例如编码一个视频为DVD时,命令如下:

ffmpeg -i input.avi -target dvd output.mpg
H&A
リリース7件のオリジナルの記事 ウォンの賞賛4 ビュー822

おすすめ

転載: blog.csdn.net/qq_34305316/article/details/103937364