3.ビットレート、フレームレート、およびファイルサイズ
ビットレート:ビットレート、フレームレート:フレームレートのファイルサイズ:ファイルサイズ
ビットレートとフレームレートは、ビデオの基本的な特性であり、それらは直接ビデオの全体的な品質に関連する妥当な値である場合。我々は、すべてのメディアストリームの出力ファイルのビットレートと継続時間を知っている場合、我々は、出力ファイルの最終的なサイズを計算することができます。プロセスでは、我々はffmpegのツールを使用して、ビットレートとフレームレートの正しい理解が非常に重要であり、我々は二つの用語は、簡単な説明を行い、以下のことになります。
フレームレートプレゼンテーション
ビデオファイルは、秒あたりのフレームに含まれるフレームレート符号化の数である(毎秒フレーム、又はFPSは、FPSをいう)、我々は肉眼フォームに少なくとも第2の15個のフレームごとに連続アニメーション番号が必要。また、フレーム周波数として知られているフレームレートは、彼の単位はヘルツ、画像を表示する60HzのLCDの平均周波数です。
フレームレートの2種類があります(フレームレート数プラスPで表される)飛び越し走査(数がフレームレートプラスIを示す)、プログレッシブスキャン
よくテレビで使用されるインターレースフレームレート:
- 60Iは、フレームレートが第インターレース走査(各リフレッシュ半フレーム)当たり60回行われるNTSC規格を使用して、即ち30個のフレームがリフレッシュ
- PALおよびSECAMの規格は、インターレース毎秒50回である50iのフレームレート、すなわちリフレッシュ25を使用します
プログレッシブスキャンは、一般的に映画産業で使用され、一般的なフレームレート24pの、25P、30Pがあります。ハイエンドのHDTV製品の50Pと60Pのフレームレートを更新しました。
フレームレート
-rオプションを使用します
次のように私たちは、ビデオのフレームレートを設定するには、-rオプションを使用することができ、このオプションは、出力ファイルの前に配置する必要があり、構文は次のとおりです。
ffmpeg -i input -r fpt output
例えば、フレームレートが25以下のコマンド、30からファイルをaviファイル:
ffmpeg -i input.avi -r 30 output.mp4
入力は、元の形式で使用する場合、-rオプションを入力する前に、この時間も配置することができます。
使用FPSフィルタ
もう一つの方法は、それがフィルターチェーンのより非常に使いやすいです、フレームレートの設定fpsのフィルタを使用することです。
例えば、出力ファイルへのファイルのフレームレートは25、次のコマンドをclip.mpg。
ffmpeg -i clip.mpg -vf fps=fps=25 clip.webm
事前定義された値のフレームレート
デジタルの直接使用より指定されたフレームレートに加えて、我々はまた、次の定義済みの値を使用できます。
あなたは29.97にフレームレートを設定したい場合は、次の3つのコマンドが所望の効果を達成することができます:
ffmpeg -i input.avi -r 29.97 output.mpg
ffmpeg -i input.avi -r 30000/1001 output.mpg
ffmpeg -i input.avi -r ntsc output.mpg
導入のビットレート
比特率这个参数对视频和音频的整体质量有着很大的影响。它的含义是每时间单位内处理的数据比特量,在FFmpeg中,该时间单位是秒,也就是说,FFmpeg中的比特率指的是每秒处理的数据比特量。
比特率一共可以分为三种:
-
平均比特率(Average bit rate):简称ABR,顾名思义,就是指平均每秒中处理的数据比特量。当输出文件的大小是一个特定值时,平均比特率和可变比特率共同使用。
-
常量比特率(Constant bit rate):简称CBR,即在每秒处理的数据比特量是个常量,这在存储中并不常用,这是因为画面快速变换的视频部分要比相对静止的部分需要更高的比特率。
-
可变比特率(Variable bit rate):简称VBR,每秒处理的比特量是可变的,与CBR相比,这种方式会在复杂景象和声音的部分写入更多数据,因此在文件大小相同的前提下,VBR的质量要比CBR好。
又译为:浮动比特率。
设置比特率
比特率决定了输出流中存储1秒编码数据所需要的比特量。我们使用 -b 选项来设置比特率,具体地,我们使用 -b:a 和 -b:v 形式分别指定音频流和视频流的比特率。例如,为输出设置一个整体的比特率(即所有流的比特率之和)为1.5M的命令如下所示:
ffmpeg -i film.avi -b 1.5M film.mp4
如果可以,ffmpeg 会使用可变比特率,此时,会在动作变化快的部分使用较高的比特率,在较为静态的部分使用较低的比特率。ffmpeg经常利用更高级的编码格式,在良好保持其视频质量的前提下,降低比特率并减少输出文件的尺寸:
ffmpeg -i input.avi -b:v 1500k output.mp4
这条命令将输出文件的视频流比特率修改成了1500K每秒。
设置常量比特率
キャッシングを行うことはできません。この時点で転送されるデータ:固定ビットレート共通の使用シナリオでは、このようなことを特徴としているなど、オンラインでのライブビデオ会議、、、として、ライブストリーミングビデオです。-b指定されたビットレート、-minrate指定された最小ビットレート、-maxrate指定された最大ビットレート:出力ビットレートを一定に設定する値は、次の3つのパラメータと同じでなければなりません。-minrateと-maxrateストリーム記述子は、(最初の章で説明)を使用することができます。-bufsizeオプションを必要とする(すなわち:ビットにおけるレート制御バッファサイズ)MAXRATEオプションを設定するとき。以下のように設定するには、例えば、CBR 0.5Mは、第二、注文しました:
ffmpeg -i in.avi -b 0.5M -minrate 0.5M -maxrate 0.5M -bufsize 1M out.mkv
出力ファイルの最大サイズを設定します。
出力ファイルのサイズが一定値以下であることを確実にするために、我々は、バイト単位で所望の値を指定-fsオプション(略称ファイルサイズ)を使用することができます。例えば、出力ファイルの最大サイズの10メガバイトを指定し、コマンドは次のとおりです。
ffmpeg -i input.avi -fs 10MB output.mp4
ファイルサイズの計算
エンコードされた出力ファイルの最終的なサイズは、すべてのビデオおよびオーディオストリームとサイズということです。方程式のビデオストリームサイズ(バイト単位)を計算する(ビットは8つのバイトに分割されています)。
video_size = video_bitrate * time_in_seconds / 8
オーディオが圧縮されていない場合は、次のように数式を計算するオーディオストリームは次のようになります。
audio_size = sampling_rate * bit_depth * channels * time_in_seconds / 8
オーディオが圧縮されている場合、我々はそのサイズを計算するために、オーディオストリームのビットレートを知っている必要があります。
audio_size = bitrate * time_in_seconds / 8
例えば、ビデオ、10分の長さ、1500K /秒のビデオストリームのビットレート、128K /秒のオーディオストリームのビットレートは、我々は次のように計算することができます。
file_size = video_size + audio_size
file_size = (video_bitrate + audio_bitrate) * time_in_seconds / 8
file_size = (1500 Kbit/s + 128Kbit/s) * 600s
file_size = 1628 Kbits/s * 600s
file_size = 976800 Kb = 976800000 b / 8 = 122199999 B / 8 = 119238.28125 KB = 119238.28125 KB / 1024 = 116.443634033203125 MB = 116.44MB
実際には計算値よりもわずかに大きい結果のファイルサイズ、メタデータファイルは、さらにファイルに関連付けられたデータブロックをマルチプレクシングヘッダを含むからです。