DVDをリッピングしたISOファイルをMKV(もしくはMP4)へ変換する際、チャプター情報が欠落してしまいます。
そのため、dvdxchap
というソフトウェアを使い、ISOファイルからチャプター情報を書き出し、動画ファイルと結合していきます。
DVD original one-file rip, deinterlace and add chapters with FFmpeg - BenHup.com
必要なソフトウェア
- cmake
- ffmpeg
- g++
- git
- libdvdread
- mkvtoolnix
Debianの場合、以下のパッケージをインストールしておきましょう。
# apt install build-essential cmake git libdvdread-dev mkvtoolnix ffmpeg
ISOをMP4へ変換
ffmpegでISOファイル内のmpegを、単一のmp4ファイルに変換します。
$ ffmpeg -i ISOファイル.iso -c copy -movflags faststart source.mp4
dvdxchapのビルド
チャプタ情報の抽出にはdvdxchap
というソフトウェアを使用します。このソフトは自分でビルドする必要があります。
ここでは、Debian Busterでビルドする例を紹介します。
// 必要なパッケージのインストール # apt install build-essential cmake git libdvdread-dev // 公式リポジトリのクローン $ git clone https://github.com/Tatsh/dvdxchap.git $ cd dvdxchap/ // ビルド用のディレクトリを作成 $ mkdir ./build $ cd ./build // ビルド $ cmake .. -DCMAKE_BUILD_TYPE=Release $ make // (必要に応じて)インストール # make install
dvdxchap
というファイルが生成されているはずです。dvdxchap -h
などで正常に動作するか確認してみましょう。
チャプタ情報の抽出&統合
チャプタ情報をchapters.txt
へ書き出し、mkvmerge
コマンドで動画ファイルとチャプタ情報を統合します。
$ dvdxchap ISOファイル.iso > chapters.txt $ mkvmerge source.mp4 --chapters chapters.txt -o output.mkv
mkvをmp4へ変換(任意)
mkvをmp4へ変換したい場合、以下のコマンドを実行します。(チャプタ情報も保持されます)
$ ffmpeg -i output.mkv -c copy -movflags faststart output.mkv