2014年7月30日水曜日

DVD-RAMのVROファイル分割ツール

DVDレコーダとDVD-RAM

アナログ放送時代の DVD レコーダは既に現役引退ですが、映像ソースの保存や FM チューナのタイマー録音等まだ活躍の場が残っています。

DVD レコーダの HDD に記録したファイルを編集する場合、操作性の悪いレコーダ本体の編集機能よりも PC で編集したいところです。その場合は面倒ですが DVD-RAM に書き出して PC で編集することになります。(ただし CPRM で保護された動画は不可です。)


DVD-RAMのファイル構成

DVD-RAM のファイルは、DVD_RTAV フォルダの中に 3 個のファイルで構成されています。

  • VR_MANGR.BUP
  • VR_MANGR.IFO
  • VR_MOVIE.VRO
複数タイトルを DVD-RAM に書き出した場合でもこのファイル数は変わりません。書き出された各タイトルは、ひとつのファイルに纏められて VR_MOVIE.VRO に保存されています。また、このファイルのコーデックは mpeg2 なので、拡張子をmpgに書き換えれば動画ファイルとして再生することもできます。

各タイトルの情報はひとつに纏められて VR_MANGR.IFO に保存されています。 DVD-RAM の再生はこのファイルの情報を元に VR_MOVIE.VRO から読み出されます。


DVD-VRユーティリティ

このツールは VR_MANGR.IFO や VIDEO_TS.IFO からタイトルなどの情報を読み出します。そして IFO ファイルの情報を元にタイトルごとにファイルを分割します。動作環境は Linux と Mac OS X です。 Windows の場合はcygwin環境で実行可能です。また、実行ファイルは配布されておらずソースのみの公開のため、各自でビルドする必要があります。


cygwinでビルド

cygwin のインストール時にビルドに必要なライブラリを入れておきます。

  • libiconv
  • gcc-core: C compiler
  • make: The GNU version of the 'make' utirity

make install でビルドが完了すれば、実行時に cygwin 環境が無くてもOKです。その場合、実行に必要なファイルcygwin1.dllcygiconv-2.dllC:\cygwin\binから、dvd-vr.exeと同じフォルダにコピーしておく必要があります。


コマンドオプション

コマンド一覧は--helpで確認できます。

dvd-vr --help

>dvd-vr --help
Usage: dvd-vr [OPTION]... VR_MANGR.IFO [VR_MOVIE.VRO]
Print info about and optionally extract vob data from DVD-VR files.

If the VRO file is specified, the component programs are
extracted to the current directory or to stdout.

-p, --program=NUM  
Only process program NUM rather than all programs.

-n, --name=NAME    
Specify a basename to use for extracted vob files rather than 
using one based on the timestamp.
If you pass - the vob files will be written to stdout.
If you pass [label] the names will be based on a sanitized 
version of the title or label.

--help         Display this help and exit.
--version      Output version information and exit.

IFOファイルから情報を読み出す

コマンド引数に IFO ファイルを渡すと、ファイル内の各タイトル情報が表示されます。

dvd-vr VR_MANGR.IFO

>dvd-vr VR_MANGR.IFO
format: DVD-VR V1.1
Encryption: CPRM supported

tv_system   : NTSC
resolution  : 704x480
aspect_ratio: 4:3
video_format: MPEG2
audio_channs: 2
audio_coding: Dolby AC-3

Number of programs: 2

num  : 1
title: TEST1
date : 2014-06-16 08:15:00
size : 806522880

num  : 2
title: TEST2
date : 2014-06-16 13:00:00
size : 810696704

VROファイルを分割する

コマンド引数に IFO ファイルと VRO ファイルを渡すと、ファイル内の各タイトルを分割します。

dvd-vr VR_MANGR.IFO VR_MOVIE.VRO

>dvd-vr VR_MANGR.IFO VR_MOVIE.VRO
format: DVD-VR V1.1
Encryption: CPRM supported

tv_system   : NTSC
resolution  : 704x480
aspect_ratio: 4:3
video_format: MPEG2
audio_channs: 2
audio_coding: Dolby AC-3

Number of programs: 2

num  : 1
title: TEST1
date : 2014-06-16 08:15:00
size : 806522880
Warning: program is partially encrypted

num  : 2
title: TEST2
date : 2014-06-16 13:00:00
size : 810696704
Warning: program is partially encrypted

上の例では VR_MOVIE.VRO を分割したファイルが 2 つ出力されています。分割したファイル名はタイムスタンプを元に設定されます。

2014-06-16_08-15-00.vob
2014-06-16_13-00-00.vob

ベースネームを指定する

ベースネームを指定すると、出力ファイル名は連番になります。例えば、ベースネームにDVDを指定する場合--name=DVDと書きます。

dvd-vr --name=DVD VR_MANGR.IFO VR_MOVIE.VRO

>dvd-vr --name=DVD VR_MANGR.IFO VR_MOVIE.VRO


DVD#001.vob
DVD#002.vob

分割後のファイルをFFmpegで確認

元ファイルの情報

>ffmpeg -i VR_MOVIE.VRO
Input #0, mpeg, from 'VR_MOVIE.VRO':
Duration: 00:45:01.18, start: 0.225367, bitrate: 4789 kb/s
    
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 704x480 
[SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    
Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s 
At least one output file must be specified

分割ファイル TEST1

>ffmpeg -i DVD#001.vob
Input #0, mpeg, from 'DVD#001.vob':
Duration: 00:45:01.18, start: 0.225367, bitrate: 2388 kb/s

Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 704x480 
[SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc

Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s 
At least one output file must be specified

分割ファイル TEST2

>ffmpeg -i DVD#002.vob
Input #0, mpeg, from 'DVD#002.vob':
Duration: 00:45:01.18, start: 0.225367, bitrate: 2401 kb/s

Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 704x480 
[SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    
Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s 
At least one output file must be specified