LinuxでDVDを作成

(2007.3.21 新規作成。)

今どきのLinuxでDVDを焼く方法について。

以下は、Fedora Core 6 で試しましたが、Fedora 7/8 Linux でも同じです。

シチュエーションとしては、例えば、レンタルDVDを積ん読しておくのにDVDを焼いておきたい、とか。

Note.

レンタルDVDはDMM.comの月額借り放題コースがおすすめ。私はTSUTAYA Discasにも入っていましたが、TSUTAYAのほうは借りたいディスクが適時に来ませんでした。

目次:

  1. ソフトの入手
  2. DVDから読み出すには
  3. DVDに書き込む
  4. 2層DVDを単層 (4.7G) ディスクにコピーする

お勧めは、vobcopy コマンドで読み出し、あとは1層DVDに圧縮したいときはk9copy, 動画ファイルの形で取り出したりしたいときは dvd::rip です。

@ ソフトの入手

DVD-Videoのデータを読み出すソフトはいろいろあります。

が、どれもFedora Coreには収録されていません。Fedora Coreは「Free (自由)」を重視し、その "Free" にはfree from patent(特許からの自由)も含まれます。patent freeではない(かもしれない)ものは収録されません。

Fedora Linux でDVD-Videoを読み書きするソフトは、次のいずれかのサイトから入手できます;

@ DVDから読み出すには

(2008.3.16 更新。)

Linuxは、普通にDVDディスクをマウントできます。DVDディスクは、CDと違って、UDFファイルシステムが載っていて、ビデオデータは普通のファイルとして見えます。

しかし、単純に mkisofs コマンドあるいは cp -r コマンドで読み出そうとするとエラーになってしまいます。

難しいのは、DVD-VideoのビデオデータをDVDから読み出すところ。DVDビデオは暗号化 (CSS) されていて、複号しながら読み出さないといけません。

以下で、いろいろな方法(ソフト)について書いてみます。

ddコマンド

(2008.3.12)

単層ディスクをそのままコピーするときは、暗号を復号せずに、単純に読み出すだけで足りるような気がしました。ddコマンドで、ファイルシステムなど関係なく、データを読み出せます。

$ dd if=/dev/dvd of=dvd.iso bs=2048

結果は失敗。読み込みエラーが発生しました。やっぱり専用ソフトが必要なようです。

dvdbackup

手軽にDVDのバックアップを取る。DVD-Create a framework for DVD-Video creation

dvdbackupはソースで配布されている。コンパイルするにはlibdvdreadが必要。

しかしFedora Core 6収録のlibdvdread (バージョン0.9.7) では公開されているシンボルが足りない。リンク時に undefined reference to `UDFFindFile' エラーが出る。

libdvdreadのほうを作りなおさないといけないが、面倒くさい。修正すべき点はこちら; [suggest] libdvdread+dvdbackup on CentOS

dvd::rip

(2008.1.9 加筆。)

perl で書かれたGUIのリッピング (ripping) ツールです。freshrpmsにパッケージがあります。バージョンは0.98.7です。

transcode のフロントエンドとして、AVIファイル (xvid など) に変換することができます。目標サイズを指定すると自動で圧縮率を計算してくれるので便利です。

あるいは、動画の一部分だけ切り抜いたりすることもできます。

streamdvd

コマンドラインのリッピングツール。livna.org にパッケージがある。

使いかたは、

  1. lsdvdしてタイトルがいくつあるか調べる。
  2. dvdauthor と組み合わせて、
    $ mkdir movies
    $ dvdauthor -t -o movies/mov1 -f 'streamdvd -i /dev/dvd -t 1 |'
    

streamdvdの-fオプションとして再量子化 (requantize) を指定できる。オリジナルが4.7Gバイトより大きいときに指定する。

試してみたが、字幕がなくなってしまう。オプションの組み合わせで何とかなるかもしれないが、分からなかった。

lxdvdrip

livna.org にパッケージがある。streamdvdのラッパみたい。streamdvd が上手くいかなかったので、試していない。

vobcopy

(2007.6.24追記, 2007.11.23更新。)

コマンドラインのVOBファイル(DVDビデオのビデオデータ)コピーツール。freshrpmsにパッケージがある。

これが簡単。Fedora 7/8では、DVDディスクは自動マウントされるので、マウント先のディレクトリを指定する。

~$ cd movies
~/movies$ vobcopy -m -i/media/FOOBAR

-mオプションでミラーコピーをおこなう。DVDディスク内のVOBファイル以外もコピーし、ディレクトリ構成も再現する。

-iオプションで入力先を指定する。

このほか、-oオプションが出力先の指定だが、指定しないときは、入力ディレクトリ名 (上の例ではFOOBAR) が自動的に作られる。普段は指定しなくてもいい。

(2013.5) Fedora 17 Linuxから, 自動マウントポイントが /media から /run/media/$USER に変更になりました。

@ DVDに書き込む

(2008.3.11 加筆。)

DVDディスクのデータを吸い出せたら、いったんDVD isoイメージを作るか、あるいは直接新しいディスクに書き込みます。

ディレクトリを書き込む

growisofsコマンドでディレクトリをDVD-Rディスクに書き込めます。movieディレクトリ直下にVIDEO_TSがあるとします。

$ growisofs -dvd-compat -Z /dev/dvd movie

GnomeBaker にはディレクトリをDVDに直接書き込むメニューがありますが、ISO 9660ファイルシステムで書き込んでしまい、VLCでは再生できなくなります(CDと誤認)。

ISOイメージを作成

圧縮せずにDVDビデオデータのISOイメージにするには、mkisofs コマンドを使います。

Note.

Fedora8 Linuxでは、mkisofsコマンドはgenisoimageコマンドの別名です。

/path/to/movieの直下にVIDEO_TSディレクトリがあるとして、次のように打ちます。

$ mkisofs -dvd-video -o dvd.iso /path/to/movie

安全にいくなら、実際にディスクに焼く前に、作成したDVDディスクイメージをテストしたほうがいいでしょう。こんな感じ。

$ su
# mount -o loop dvd.iso /mnt/dvd

あとはディスクに書き込むだけです。GnomeBakerが簡単です。

@ 2層DVDを単層 (4.7G) ディスクにコピーする

(2007.4.23 この節追加。2007.11.23 更新。)

2層DVD (DVD9; 8.5Gバイト) DVDを多少画質は落としてもいいから単層DVDディスクに記録したいことがある。

こういう場合はk9copyが非常に手軽。GUIで、メニューや字幕、音声などを維持したまま、動画データを圧縮してくれる。一部のタイトル、字幕、音声だけ切り出すこともできる. (これは試していないが。)

  • http://k9copy.sourceforge.net/ [リンク切れ]

2007.11現在の最新版はバージョン1.2.0。バイナリは多少古いので、最新版のソースを取ってきてコンパイルする。Fedora 8の場合、KDE関係のパッケージと、freshrpmsのffmpeg-develパッケージが必要。

(2015.8) k9copyはプロジェクトが終了し、サイトも消失してしまった。後継プロジェクトとしては k9copy-reloaded がある。ただ、DVDを焼くという需要は減っているような気がする。私ももはや、DVDを焼いたりしていない。

バージョン 3.0.3 には次のような問題があり、まったく実用ではない;

  • Wizard mode だと titleset が認識されない。すべての title が combine されてしまう。複数の titleset があるディスクだと厳しい。
  • 標準 UI モードで作ったディスクが VLC media player を crash させる。と思ったら, Wizard mode で作ったものでも crash してしまう。
  • 別の player だと表示できるものもあるが、chapter 選択画面が壊れている。さらに, 途中の chapter から再生すると, 再生位置の時刻表示がおかしい。

(2015.8 ここまで)

起動すれば一目瞭然だが、Input deviceにDVDドライブを指定し、OutputにISO Imageを指定するだけ。自動的に単層DVDに収まるように圧縮してくれる。一部のデータだけ切り出すときはShrink Factorが1.00で、DVDディスクに収まらない量を指定すると自動的にShrink Factorが高くなる。

vobcopyでいったんハードディスクにコピーしておき、そのディレクトリ(フォルダ)をInput deviceとして指定してもいい。試行錯誤しやすい。

サイト内関連ページ

CD-Rにバックアップを取る
このページで使っているコマンドのオプションなど技術的な説明があります。
LinuxでDVDを観る (VLC media player)
LinuxでDVDを観る方法。