2017年6月の記事一覧

【備忘録】ffmpegのオプションについて

ども。

OSWSの牧野です。

ffmpegについての作業の備忘録として、記載しておきます。

 

【ffmpegに指定するオプションについて】

※ここで使用しているffmpegは、Windows版/Linux版ともに2.6.8です。

 

movやavi等の動画ファイルを、mp4(H264)に変換する為のオプションです。

 

ffmpeg -i 入力ファイル名 -ar 48000 -vcodec libx264 -r 30 -b:v 1000k -pix_fmt yuv420p 出力ファイル名.mp4

※windows版だと、[ffmpeg.exe]になります。

 

★オプション解説★

オプション 音声/画像 解説
-i 入力ファイル名 -

入力ファイルを指定します。

入力ファイルの拡張子から、ファイルの属性を取得するようです。なので、入力ファイルの種別は特に指定しません。

-ar 48000 音声オプション

サンプリング周波数を指定します。

単位は[Hz]です。ここでは48kHzを指定しています。

動画としては、この数値が基準なようです。

サンプリング周波数とは簡単に言ってしまうと音声のハッキリさ・繊細さといった感じでしょうか(適当)。

-vcodec libx264 画像オプション

コーデックを指定します。

H264を指定したいので[libx264]を指定しています。

コーデックとは、簡単に言ってしまうと、動画の圧縮形式といった感じでしょうか。

動画はファイルの中で特定のルールに基づいて動画専用形式で圧縮されています。動画を再生する、という事は、ブラウザなりツールなりで、その対象ファイルの中身の圧縮されたデータを解凍して元の画像情報に戻している事のようなものです。

例えば普通のファイルでも、圧縮ファイル形式に[zip]や[tar]があります。[xxx.tar]という圧縮ファイルをもらっても、[tar]形式のファイルを解凍できるツールがないと、そのファイルの中身を見る事ができない事と同じだと思ってください。(たぶん)

[zip]がWindowsならXPでも8でも10でも標準的に解凍できるのと同じで、[H264]は今のところ、色んなブラウザやツールが再生できる形式となっています。

(※コーデックに詳しい人。もしこの解説で間違っていたら直しますので連絡ください)

-r 30 画像オプション

フレームレートを指定します。

単位は[fps]です。ここでは30fpsを指定しています。

※ffmpegのデフォルトは25fpsだそうです。

フレームレートは、ある単位で何フレーム表示するかの値です。[fps]の場合は秒となります。

なので、30fpsとは、毎秒ごとに30フレーム表示するぜ、という事のようです。

-b:v 1000k 画像オプション

ビットレートを指定します。

単位は[bps]です。ここでは1000kbpsを指定しています。

※ffmpegのデフォルトは200kbpsだそうです。

ビットレートとは、簡単に言ってしまうと画像のハッキリさといった感じでしょうか。ビットレートが低いと低画質、高いと高画質になります。

[bps]の場合は毎秒毎に何ビット表示するか、という事になります。

-pix_fmt yuv420p 画像オプション

ピクセルフォーマットを指定します。

ここでは[yuv420p]を指定しています。

[yuv420p]を指定しないと、H264コーデックへの変換が上手くいかない事があります。H264コーデックへの変換の際は、必ずこれも同時にオプション指定してください。

ピクセルフォーマットとは、別名カラーフォーマット。その画像の彩度・明度・色味等の情報のようです。

色々な規格があるようです(詳細は調査途中で力尽きました)

出力ファイル名.mp4 -

出力ファイルを指定します。

最後に指定した[-]ナシの引数が自動的に出力ファイル名として扱われますので注意してください。

ここで指定したファイル名についている拡張子のファイルに変換します。なので、特に出力ファイル形式を指定しません。

 

上記オプションでは、動画の縦横サイズや比率の変更は行わない為、その為のオプションについては記載しておりません。

 

以上。

1