以下のサイトを参考にしています。
細かいことは調べてないのでやり方だけメモ
DVD-Video形式
DVDを挿入して/Volumes
からDVDのファイルを見ると、AUDIO_TS
とVIDEO_TS
というフォルダが確認できます。DVD-Video形式の動画データはVIDEO_TS
側にVTS_XX_Y.VOB
というような形式で入ってます。
❯ ls /Volumes/DISK_NAME AUDIO_TS VIDEO_TS ❯ ls /Volumes/DISK_NAME/VIDEO_TS/ VIDEO_TS.BUP VIDEO_TS.IFO VIDEO_TS.VOB VTS_01_0.BUP VTS_01_0.IFO VTS_01_0.VOB VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB
念の為使用可能なハードウェアエンコーダーを確認しておきます。
❯ ffmpeg -encoders | grep VideoTool ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers built with Apple clang version 14.0.3 (clang-1403.0.22.14.1) configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon libavutil 58. 2.100 / 58. 2.100 libavcodec 60. 3.100 / 60. 3.100 libavformat 60. 3.100 / 60. 3.100 libavdevice 60. 1.100 / 60. 1.100 libavfilter 9. 3.100 / 9. 3.100 libswscale 7. 1.100 / 7. 1.100 libswresample 4. 10.100 / 4. 10.100 libpostproc 57. 1.100 / 57. 1.100 V....D h264_videotoolbox VideoToolbox H.264 Encoder (codec h264) V....D hevc_videotoolbox VideoToolbox H.265 Encoder (codec hevc) V....D prores_videotoolbox VideoToolbox ProRes Encoder (codec prores)
ハードウェアエンコードを用いてmp4に変換したいので、今回はh264_videotoolbox
を使用します。
チャプターごとにファイルが分割されているので、一つのファイルに結合した上でffmpegに投げつけます。
デフォルトだとかなりbitrateが低くなってしまうので、-q:v 50
で品質固定をします。
自分の場合はDVD内の映像はプログレッシブ方式だったため、インターレース解除のフィルタは使用していません。
❯ cat VTS_*.VOB > vts.vob ❯ ffmpeg -i vts.vob -c:v h264_videotoolbox -preset superfast -q:v 50 -c:a copy output.mp4
場合によっては最初のファイル(VTS_01_0.VOB
)はチャプター選択画面の場合があるので、適宜弾きます。
DVD VR(Video Recording) Format
DVD-RAM等に書き込んだやつはこれになってる場合がある。
Macの場合は開こうとすると「permission denied」となりますが、lsで中身は確認できます。
VR形式の場合は、DVD_RTAV
フォルダ内のVR_MOVIE.VRO
が動画の実体です。
❯ ls /Volumes/MEI_UDF/ DVD_RTAV TS_MANGR TS_THMNL ❯ ls /Volumes/MEI_UDF/DVD_RTAV/ VR_MANGR.BUP VR_MANGR.IFO VR_MOVIE.VRO ❯ cd /Volumes/MEI_UDF/DVD_RTAV/ cd: permission denied: /Volumes/MEI_UDF/DVD_RTAV/
これ単体でコピーしてこれるか確認が面倒なので、DVD-RAMの中身を全部PC側にコピーします。
コピーした上でffmpegに流す。細かく調べていないので理由は不明ですがroot権限が必要なのでsudoをつけて実行。
sudo ffmpeg -i vr_movie.vro -c:v h264_videotoolbox -preset superfast -q:v 50 -c:a copy output.mp4
以上