⧅ffmpeg DivX HomeTheater形式の生成 2 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(黒駒に変更する・映像を付け足す)
(DivX HomeTheaterの形式に変換する)
250行: 250行:
 
 ここまで来たら、あとはコマンドを使って変換するだけです。結構長いコマンドです。
 
 ここまで来たら、あとはコマンドを使って変換するだけです。結構長いコマンドです。
 
<syntaxhighlight2 lang="bash">
 
<syntaxhighlight2 lang="bash">
 
+
ffmpeg -i インプットする動画のファイル名 -i インプットする音声ファイル名.mp3 -sn -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -c:v libxvid -crf 24 -vtag DIVX -vf "fps=30,scale=720:480" -aspect 16:9 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 30 -b:v 350k -minrate 350k -maxrate 350k output_DivX_720x480px_Aspect16_9_350bps_30fps.avi
 
</syntaxhighlight2>
 
</syntaxhighlight2>
 +
 上記のコマンドを使うとDivX HomeTheater形式対応したデバイスで再生できるファイルが出来上がります。「-i インプットする音声ファイル名.mp3」の部分は、音声ファイルを別で取り込まない場合は不要です。でも、音声ファイル名を省いたとしても、後に続くオーディオに関するオプションは消さずに付けておいた方が良いと思います。形式があっていないと再生できなくなります。
 +
  
 
+
===='''オプションの意味'''====
 +
*-i
 +
:インプットするファイル名です。拡張子から、形式を予測してくれるので、間違った拡張子をつけてなければ、問題はおこらないはずです。
 +
*-sn
 +
: 
 +
*-c:a または -acodec
 +
:オーディオファイルのエンコード形式にあったコーデックを選択します。ここでは「libmp3lame」mp3形式のファイルをエンコードしてくれるコーデックを選んでいます。
 +
*-ar
 +
:オーディオのサンプリング周波数を指定します。時間軸上で1秒あたり波形の高さを確認する回数です。多ければ多いほど正確な波形になりますが、対応している周波数の種類は割と限られています。ここでは動画音声の標準的なサンプリング周波数である48kHz(48000Hz)を選択しています。オーディオだけだと通常は44.1KHzが多用されるので、ここで指定するオプションはあった方が良いハズです。
 +
*-ab
 +
:オーディオのビットレートを指定します。これは1秒間あたりのデータ量を指定します。サンプリング周波数でサンプルしたとしても1秒あたりにこれくらいのデータ量になるようにファイルを構成して欲しいということを指定しています。ここでは128kbpsを指定しています。
 +
*-ac
 +
:オーディオのチャンネル数を指定しています。1か2です。1はモノラル。2はステレオです。ここでは2を選択しました。
 +
*-c:v または -vcodec
 +
:ビデオのエンコード形式にあったコーデックを選択します。ここでは「libxvid」というDivXのオープンライセンス版コーデックを選択しました。DivXのXの位置をひっくり返したxvidはDivXじゃないんじゃないか?と思うかもしれませんが、もともとDivXというのは有識者を含めた人たちがDivX社の前進の企業が中心となって作り上げたエンコード方式でした。それを突然、製品として販売し始めたので、有識者たちが反発の意味で立ち上げたのがDivXを追随するxdivです。厳密にはDivXとXvidは異なりますが、DivXの基本的な部分では互換性があるためHomeTheater形式に準じたDivX形式のファイルが作れるというそういった背景があります。xvidはh263という規格にそった動画の一種です。
 +
*-crf
 +
:xvidのオプションですが、動画の品質を0〜51段階で設定できます。ここでは24を指定しました。固定の品質(固定ビットレートといいます。)にするためのオプションの一つです。一般的には19~25を使いますが、19はちょっと画質悪いなぁって感じる感じで20あたりがまぁいいかって思える感じで24まで来るとファイルサイズは20の倍くらいになりますが、綺麗かもって感じるレベルになります。今回の指定は24ですが後で出てくるオプション指定で、このオプションが無効に近い状態になっています。
 +
*-vtag
 +
:vtagは動画ファイルの先頭に付けられる4文字のAscciコード(文字列符号化数値)です。ここでは「DIVX」を指定しました。xvidでエンコードしましたが「DIVX」とすることで、xvidエンコードでも再生機器側でDivX形式だと認識できるようになります。この4文字は動画形式毎に定められています。指定しない場合は基本的な値が付与されます。
 +
*-vf
 +
:ビデオにかけるエフェクト効果です。ここでの指定はエフェクトと言えるほどの効果していではないですが、形式としての変化が現れます。複数の指定がある場合引数はダブルクォーテーションで囲い、それぞれはカンマで区切ります"fps=30,scale=720:480" 今回は、fpsを30とscaleを720x480に指定しています。fpsはフレームレートといい1秒間に何枚の画像で構成するかという指定です。24.15fpsとかいう中途半端に感じるフレームレートもありますが、DivXは対応していないです。30fpsを指定した方がよいでしょう。デバイスによってはこれ以外のfpsを対応しているものもあるかもしれません。ここは研究の余地が大きいと思います。scaleは720x480pxを指定しています。ここまでの説明で動画の縦横は720x480にしてあるので必要ないしていだと思いますが、もしそうなってなかったとしても、縦横の比率の関係で変な形の映像になるかもしれませんが、ここで修正が効きます。
 +
*-aspect
 +
:アスペクト比を指定します。縦と横の比率です。再生デバイスには動画のアスペクト比を読み込んで、それに合わせた表示をする機能があり、16:9の画面をもつデバイスが4:3のアスペクト比の動画を読み込むと横に黒帯をいれるような処理が働きます。16:9と定義されていれば、そのまま、再生デバイスの画面ピッタリで再生してくれます。ピクセルの縦と横のサイズはとは別の働きです。縦横のピクセル数の動画が指定したアスペクト比として構成されているので、そのように扱って下さい。みたいなことです。最近のデバイスは大抵16:9の再生をすることを目的としているモノが多いので、今回の例のとおりに指定することが多いと思います。
 +
*-mbd
 +
:マクロブロックのアルゴリズム「rd(best rate distortionという方法)」が一番ブロックの解析が高く綺麗になります。他にもsimple(bcmpという方法)とbits(few bitsという方法)があります。
 +
*-flags +mv4+aic
 +
:エンコードの細かい処理方法の指定です。数十の細かい指定が用意されています。ここでは「Motion Vector by macroblockの4分割」という方式と「h263のAdvanced Intra Coding(aic)」という方式のsy利をしてくれます。
 +
*-trellis 2
 +
:
 +
*-cmp 2
 +
:
 +
*-subcmp 2
 +
:
 +
*-g 30
 +
:
 +
*-b:v 350k -minrate 350k -maxrate 350k
 +
:-b:vは-vbと同じ意味ですが、ビットレートを指定してます。この容量が多いほど情報が多いことを意味していて、綺麗な画質になります。但し、ここで設定した値だけでは、努力目標のビットレートという意味になっていて、指定した値を超える瞬間があります。それを補っているのが -minrate  -maxrateに指定した値です。上限と下限を指定します。それでも多少はビットレートは揺らぎます。でも、この指定で350kbpsになっています。綺麗な画質を求めるならもうちょっと大きいビットレートにするべきだと思います。500kbpsくらいで、やっとで劣化が少ないと感じるレベルです。

2020年11月30日 (月) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス