FFmpeg」タグアーカイブ

mplayerでDVD-Videoを扱うためのTIPS

Linuxで使える動画アプリmplayerに関するメモです。
Windowsバージョンもあります。詳細はリンクを参照してください。

DVD-Videoを再生する基本コマンド

単にDVD-Videoの再生したい場合

$ mplayer dvd://1

チャプター2から4のみ再生したい場合

$ mplayer dvd://1 -chapter 2-4

タイトル2を再生したい場合

$ mplayer dvd://2

メニューを使用したい場合

$ mplayer dvdnav://1 -mouse-movements                                                           

-mouse-movementsオプションを外した場合はキーボードのみの操作になります。

HDDにバックアップしたDVD-Videoの取り扱い

コピーガードのかかっていないDVD-Videoの場合

$ cp -r /mnt/dvd /path/to/directory
$ ls /path/to/directory
AUDIO_TS/  VIDEO_TS/

のような感じで普通のファイルと同様の手順でHDDにバックアップすることができます。

このバックアップしたファイルをDVD-Videoとして再生したい場合は-dvd-deviceオプションを使って次のようなコマンドを入力します。

$ mplayer dvd://1 -dvd-device /path/to/directory

DVD-Videoの内容をvobに変換

DVD-Videoの内容をvobファイルとしてdumpしたい場合は-dumpstream-dumpfileオプションを使って次のようなコマンドで出力できます。

$ mplayer dvd://1 -dumpstream -dumpfile dump.vob

-dumpstream-chapterオプションと併用できますので、例えばチャプターごとに分割したvobファイルを作成したい場合は

$ mplayer dvd://1 -chapter 1-1 -dumpstream -dumpfile chapter-1.vob
$ mplayer dvd://1 -chapter 2-2 -dumpstream -dumpfile chapter-2.vob

のような感じで出力できます。

ちなみに、収録されているチャプター数とかタイトル数などが不明な場合は-identifyオプションで調べることができます。

$ mplayer dvd://1 -identify

MPlayer homepage
http://www.mplayerhq.hu/

MPlayer & MEncoder Builds for Windows
https://mplayerwin.sourceforge.net/downloads.html

FFmpegで連番画像から動画を作成する際のTIPS

FFmpegで連番画像から動画を作成する際のTIPSをまとめてみました。

※一部、過去記事と重複する内容もあります。

画像ファイルから動画ファイルを作成するコマンド

0001.png0002.png0003.png …という連番画像から動画ファイル(MP4)を作成するには以下のようなコマンドを実行します。

$ ffmpeg -i %04d.png -c:v libx264 output.mp4

%04d.pngの部分が連番画像ファイルを指定する部分になっています。

例えば、image_001.pngimage_002.pngimage_003.png …というファイル名になっている場合はimage_%03d.pngのような感じにします。

関連記事: アニメーションGIFの作り方

フレームレートの設定

オプションを指定していない場合、フレームレートが25fpsの動画ファイルが作成されます。変更したい場合は-rコマンドでフレームレートを設定してください。

$ ffmpeg -r 30 -i %04d.png -c:v libx264 output.mp4

画質の設定

動画の画質を設定する場合は-crfオプションを使います。デフォルトでは23になっています。画質を上げたい場合はより小さな値を、画質を下げたい(ファイルサイズを小さくしたい)場合はより大きな値を設定します。

$ ffmpeg -i %04d.png -c:v libx264 -crf 20 output.mp4

関連記事: FFmpegでYouTube向けにエンコード

ループの設定

動画を何周かループさせたい場合は-stream_loopオプションを使います。例えば、-stream_loop 2とすると、最初の1周分とあわせて同じ内容が3回表示される動画ファイルになります。

$ ffmpeg -stream_loop 2 -i %04d.png -c:v libx264 output.mp4

YouTubeなどのサイトにアップロードする場合

YouTubeなどの動画サイトにアップロードする場合は-pix_fmt yuv420pを付けないと正常に再生できない場合があります。アップロードしてみて、正常に再生できないようであれば、設定を見直してみてください。

$ ffmpeg -i %04d.png -c:v libx264 -pix_fmt yuv420p output.mp4

関連記事: FFmpegでYouTube向けにエンコード

FFmpegでYouTube向けにエンコード

FFmpegでYouTube向けにエンコードしたい場合は

$ ffmpeg -i input.avi -c:v libx264 -preset slow -crf 18 -c:a copy -pix_fmt yuv420p output.mkv

のようなコマンドでエンコードできます。

ポイントは-pix_fmt yuv420pの部分だと思います。-pix_fmt yuv420pのオプションを消してエンコードするとChroma subsamplingが4:4:4になるみたいです。ローカルPCでは正常に再生できますが、アップロードすると映像が乱れる場合があるようです。(YouTube以外でも動画アップロードに対応しているWebサービスでは-pix_fmt yuv420pのオプションを付けておいた方が良いみたいです。)

オプションについての簡単な説明

-c:v libx264は動画をx264でエンコードするという設定です。出力するファイルをoutput.mkvの代わりにoutput.mp4にする場合は、デフォルトでx264でエンコードの設定になるので省略できます。

-preset slowはエンコード速度に関する設定です。エンコードに時間を掛けてでも圧縮率を上げてファイルサイズを減らしたい場合はslow/slower/veryslowを使います。逆に少しでも短時間でエンコードを終わらせたい場合はmedium/fast/faster/veryfastを使います。

-crf 18の部分は動画のクオリティに関する部分になっています。画質を落としてでもファイルサイズを減らしたい場合は18より大きな値を設定します。逆に、ファイルサイズを増やして画質を上げたい場合は18より小さな値を設定します。

-c:a copyはオーディオについては再エンコードしないという設定です。AACで再エンコードしたい場合は-c:a aac -b:a 192kのような感じで設定します。(192kはオーディオのビットレートです。)

リンク

Encode/YouTube – FFmpeg
https://trac.ffmpeg.org/wiki/Encode/YouTube