自宅のHDD内蔵 DVDレコーダで記録したビデオを何とかLinux上のファイル にしたいなぁ。
DVD-RAMをマウントしてみると、メディアの構成がわかります。 ファイルのオーナーが違ったので、rootユーザでのみアクセスができました。
# mount -t udf /dev/scd0 /mnt/dvdram # ls /mnt/dvdram/ DVD_RTAV/ TS_MANGR/ TS_THMNL/ [root@brain root]# ls /mnt/dvdram/DVD_RTAV/ VR_MANGR.BUP VR_MANGR.IFO VR_MOVIE.VRO
このVR_MOVIE.VROが映像ファイルなようです。複数のコンテンツをまとめ てDVD-RAMに入れると、全部このファイルに入ってしまうようです。
MPlayerで再生したところ、うまくできました。
# mplayer /mnt/dvdram/DVD_RTAV/VR_MOVIE.VRO MPlayer 1.0pre7-3.3.2 (C) 2000-2005 MPlayer Team CPU: Intel Pentium 4/Xeon/Celeron Foster (Family: 8, Stepping: 7) Detected cache-line size is 64 bytes CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2 85 audio & 196 video codecs Failed to open /dev/rtc: Device or resource busy (it should be readable by the user.) Playing /mnt/dvdram/DVD_RTAV/VR_MOVIE.VRO. MPEG-PS file format detected. VIDEO: MPEG2 352x480 (aspect 2) 29.970 fps 6000.0 kbps (750.0 kbyte/s) ========================================================================== Opening audio decoder: [liba52] AC3 decoding with liba52 Using SSE optimized IMDCT transform AC3: 2.0 (stereo) 48000 Hz 192.0 kbit/s Using MMX optimized resampler AUDIO: 48000 Hz, 2 ch, s16le, 192.0 kbit/12.50% (ratio: 24000->192000) Selected audio codec: [a52] afm:liba52 (AC3-liba52) ========================================================================== vo: X11 running at 1280x1024 with depth 24 and 32 bpp (":0.0" => local display) ========================================================================== Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough VDec: vo config request - 352 x 480 (preferred csp: Mpeg PES) Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] The selected video_out device is incompatible with this codec. VDecoder init failed :( Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b Selected video codec: [mpeg12] vfm:libmpeg2 (MPEG-1 or 2 (libmpeg2)) ========================================================================== Checking audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/s16le... AF_pre: 48000Hz/2ch/s16le [AO OSS] audio_setup: Can't open audio device /dev/sound/dsp: No such file or directory [AO ESD] latency: [server: 0.28s, net: 0.00s] (adjust 0.28s) AO: [esd] 44100Hz 2ch s16le (2 bps) Building audio filter chain for 48000Hz/2ch/s16le -> 44100Hz/2ch/s16le... Starting playback... VDec: vo config request - 352 x 480 (preferred csp: Planar YV12) VDec: using Planar YV12 as output csp (no 0) Movie-Aspect is 1.33:1 - prescaling to correct movie aspect. VO: [xv] 352x480 => 640x480 Planar YV12 A: 4.7 V: 4.7 A-V: -0.014 ct: 0.189 134/134 9% 1% 0.9% 0 0 Exiting... (Quit)
フォーマット | MPEG-PS | |
Video | MPEG2 | 352x480 (aspect 2) 29.970 fps 6000.0 kbps (750.0 kbyte/s) |
Audio | AC3 | 2.0 (stereo) 48000 Hz 192.0 kbit/s |
ffmpegで動画ファイルが変換できるので、試してみた。 ffmpegのマニュアルを見ながら、上記で得られたデータ形式を当てはめると、 次のようにすればよいと思う。画像サイズは変更することになるが、指定しな いと縦長352x480になってしまう。
# ffmpeg -i /mnt/dvdram/DVD_RTAV/VR_MOVIE.VRO -s 352x264 -vcodec mpeg4 -acodec mp3 -b 750 -g 300 -ab 192 /tmp/test.avi
-f avi を入れても良いみたい。-g 300は29.970fpsの10倍、つまり10秒間 のフレーム数を指定する。画像サイズは 640:480=352:264より決めた。
複数のコンテンツを別々にするにはどうすればよいか? 当面、DVD-RAMに1つずつ入れて、ファイル化していくしかない。
ffmpegをコンパイルするのに必要
プロジェクトページ http://lame.sourceforge.net/ バージョン 3.96.1-1
$ ./configure --enable-nasm --enable-shared --with-vorbis --disable-debug $ make $ su # make install
プロジェクトページ http://ffmpeg.sourceforge.net/ バージョン 0.4.9-pre1
$ ./configure --prefix=/usr --enable-shared --enable-pthreads --enable-gpl --enable-a52 --enable-vorbis --enable-mp3lame $ make $ make -C doc $ su # make install