がべーじこれくしょん

技術系とかいろいろ

M1 Macでハードウェアエンコードを駆使しつつDVDをmp4に変換

執筆・創作活動への支援をぜひお願いします🙏
Buy Me A Coffee

以下のサイトを参考にしています。

qiita.com

qiita.com

細かいことは調べてないのでやり方だけメモ

DVD-Video形式

DVDを挿入して/VolumesからDVDのファイルを見ると、AUDIO_TSVIDEO_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

以上