Discussion:
cannot extract audio from DVD
Henning Holtschneider
2003-08-16 21:51:37 UTC
Permalink
Hi,

I trying to use transcode 0.6.9 to extract the audio track from a DVD on a
Debian 3.0 system. I configured and compiled transcode like this:

----------------------------------------------------------
Summary for transcode 0.6.9 features:

*-*-*-*-*-*-* Core *-*-*-*-*-*-*
static AV-frame buffering yes
support for network (sockets) streams yes
DVD navigation support with libdvdread yes
link against local lame library (>=3.89) | ver no | 1
*-*-*-*-*-*-* Codec *-*-*-*-*-*-*
nasm dependent modules (bbmpeg) yes
mjpegtools dependent modules yes
libdv dependent modules no
Ogg support | Vorbis support | Theora support yes | yes | no
Default xvid export module xvid2
liba52 audio plugin (>=0.7.3) | default decoder yes | yes
avifile API support no
ImageMagick dependent modules (>=5.4.3) no
libjpeg dependent modules | mmx accel yes | no
liblzo dependent modules no
libxml2 dependent modules no
experimental v4l support yes
experimental lve support no
libmpeg3 dependent modules yes
libfame video encoding plugin no
quicktime dependent modules no
*-*-*-*-*-*-* Filter *-*-*-*-*-*-*
libpostproc dependent filter plugin no
X11 dependent filter plugins yes
freetype2 dependent filter (filter_text) no

I invoke transcode like this:

transcode -i /dev/dvd -x dvd -T 2,2 -E 44100 \
-y null,wav -m test.wav -J resample

This results in a file which is only 44 bytes long. Here is the output from
transcode:

transcode v0.6.9 (C) 2001-2003 Thomas Oestreich
(dvd_reader.c) DVD title 2/6: 23 chapter(s), 1 angle(s), title set 2
(dvd_reader.c) title playback time: 02:07:37.02 7658 sec
(dvd_reader.c) [Chapter 01] 00:00:00.000
(dvd_reader.c) [Chapter 02] 00:00:34.080
(dvd_reader.c) [Chapter 03] 00:04:13.920
(dvd_reader.c) [Chapter 04] 00:08:12.000
(dvd_reader.c) [Chapter 05] 00:12:45.120
(dvd_reader.c) [Chapter 06] 00:18:20.160
(dvd_reader.c) [Chapter 07] 00:22:39.840
(dvd_reader.c) [Chapter 08] 00:27:26.880
(dvd_reader.c) [Chapter 09] 00:32:58.560
(dvd_reader.c) [Chapter 10] 00:39:25.440
(dvd_reader.c) [Chapter 11] 00:43:31.680
(dvd_reader.c) [Chapter 12] 00:58:40.320
(dvd_reader.c) [Chapter 13] 01:04:30.720
(dvd_reader.c) [Chapter 14] 01:08:56.160
(dvd_reader.c) [Chapter 15] 01:16:25.440
(dvd_reader.c) [Chapter 16] 01:20:39.840
(dvd_reader.c) [Chapter 17] 01:25:53.280
(dvd_reader.c) [Chapter 18] 01:29:58.720
(dvd_reader.c) [Chapter 19] 01:35:35.680
(dvd_reader.c) [Chapter 20] 01:48:37.600
(dvd_reader.c) [Chapter 21] 01:53:36.640
(dvd_reader.c) [Chapter 22] 02:01:31.360
(dvd_reader.c) [Chapter 23] 02:05:14.080
[transcode] auto-probing source /dev/dvd (ok)
[transcode] V: import format | MPEG-2 DVD PAL (V=dvd|A=dvd)
[transcode] V: AV demux/sync | (1) sync AV at initial MPEG sequence
[transcode] V: import frame | 720x576 1.25:1 encoded @ 16:9
[transcode] V: bits/pixel | 0.174
[transcode] V: decoding fps,frc | 25.000,3
[transcode] A: import format | 0x2001 AC3/A52 [48000,16,2]
[transcode] A: export format | 0x55 MPEG layer-3 [44100,16,2] 128
kbps
[transcode] V: encoding fps,frc | 25.000,3
[transcode] A: language | en
[transcode] A: bytes per frame | 7680 (7680.000000)
[transcode] A: adjustment | ***@1000
[transcode] V: IA32 accel mode | mmx (mmx asm)
[transcode] V: video buffer | 10 @ 720x576
[import_dvd.so] v0.3.13 (2003-06-11) (video) DVD | (audio) MPEG/AC3/PCM
[filter_resample.so] v0.1.3 (2003-07-11) audio resampling filter plugin
[filter_resample.so] options=(null)
[export_wav.so] v0.2.3 (2003-01-16) (audio) WAVE PCM
[export_null.so] v0.1.2 (2001-08-17) (video) null | (audio) null
libdvdread: Using libdvdcss.so.2 for DVD access
[import_dvd.so] tccat -T 2,2,1 -i "/dev/dvd" -t dvd -d 0 -L | tcdemux -a 0
-x ac3 -S 0 -M 1 -d 0 | tcextract -t vob -x a52 -a 0 -d 0 | tcdecode -x a52
-d 0 -A 0
[import_dvd.so] tccat -T 2,2,1 -i "/dev/dvd" -t dvd -d 0 | tcdemux -s 0x80
-x mpeg2 -S 0 -M 1 -d 0 | tcextract -t vob -a 0 -x mpeg2 -d 0 | tcdecode -x
mpeg2 -d 0
[import_dvd.so] delaying DVD access by 3 second(s)
.No accelerated IMDCT transform found
[demuxer.c] (pid=480) '0x6c696264' not yet supported
..[demuxer.c] (pid=486) '0x6c696264' not yet supported

clean up | frame threads |soxfuncs: drain overran obuf by 35

soxfuncs: drain overran obuf by 35

unload modules | cancel signal | internal threads | done
[transcode] encoded 0 frames (0 dropped, 0 cloned), clip length 0.00 s

Can anyone explain what's going wrong here?

Thanks,
hh
Florin Andrei
2003-08-17 00:37:00 UTC
Permalink
Post by Henning Holtschneider
I trying to use transcode 0.6.9 to extract the audio track from a DVD
transcode -i /dev/dvd -x dvd -T 2,2 -E 44100 \
-y null,wav -m test.wav -J resample
This results in a file which is only 44 bytes long.
You may want to save the content of the DVD on the hard-drive first, and
extract the sound after that. You may use the transcode utilities
directly or, more easily, use dvd::rip.
After saving, the following work very well for me:

transcode -a 0 -x null,vob -i /some/movie/vobs \
-E 44100 -J resample --a52_drc_off \
-y null,lame -o /dev/null -m sound.mp3

transcode -a 0 -x null,vob -i /some/movie/vobs \
-E 44100 -J resample --a52_drc_off \
-y null,wav -o /dev/null -m sound.wav
--
Florin Andrei

http://florin.myip.org/
Florin Andrei
2003-08-17 01:01:14 UTC
Permalink
Post by Florin Andrei
transcode -a 0 -x null,vob -i /some/movie/vobs \
-E 44100 -J resample --a52_drc_off \
-y null,lame -o /dev/null -m sound.mp3
transcode -a 0 -x null,vob -i /some/movie/vobs \
-E 44100 -J resample --a52_drc_off \
-y null,wav -o /dev/null -m sound.wav
Forgot to specify:
- most likely, you'll want to tweak -a, as it specifies which audio
track you want to save
- i am not sure of the exact usefulness of --a52_drc_off, perhaps a
transcode guru can shed some light
--
Florin Andrei

http://florin.myip.org/
Andrew Smith
2003-08-17 11:09:47 UTC
Permalink
I've attached the script I use for ripping an mp3 from a DVD
It doesn't have "--a52_drc_off" so you may want to add
it in if you know what it does and if it is useful.
I'll add it myself if someone replies to Florin's question :-)
You'll also need to change the variable "input" to
match your dvd device
-Cheers
-Andrew
Post by Florin Andrei
Post by Florin Andrei
transcode -a 0 -x null,vob -i /some/movie/vobs \
-E 44100 -J resample --a52_drc_off \
-y null,lame -o /dev/null -m sound.mp3
transcode -a 0 -x null,vob -i /some/movie/vobs \
-E 44100 -J resample --a52_drc_off \
-y null,wav -o /dev/null -m sound.wav
- most likely, you'll want to tweak -a, as it specifies which audio
track you want to save
- i am not sure of the exact usefulness of --a52_drc_off, perhaps a
transcode guru can shed some light
--
Florin Andrei
Tilmann Bitterberg
2003-08-19 16:39:01 UTC
Permalink
Post by Florin Andrei
- i am not sure of the exact usefulness of --a52_drc_off, perhaps a
transcode guru can shed some light
--a52_drc_off
disable liba52 dynamic range compression [enabled]

If you dont specify this option, liba52 will provide the default
behaviour, which is to apply the full dynamic range compression
as specified in the A/52 stream. This basically makes the loud
sounds softer, and the soft sounds louder, so you can more eas-
ily listen to the stream in a noisy environment without disturb-
ing anyone.

If you let it enabled this this will totally disable the dynamic
range compression and provide a playback more adapted to a movie
theater or a listening room.

Greetings,
Tilmann
--
Sometimes transcode changes or | Searchable
adds new features while your | mailing-list archives
are encoding. | http://itdp.de/transcode-users/
-- ThOe | IRCnet #transcode
Maik Holtkamp
2003-08-23 11:06:45 UTC
Permalink
Hi,
Post by Florin Andrei
Post by Florin Andrei
- i am not sure of the exact usefulness of --a52_drc_off, perhaps a
transcode guru can shed some light
--a52_drc_off
disable liba52 dynamic range compression [enabled]
[...]
Post by Florin Andrei
If you let it enabled this this will totally disable the dynamic
range compression and provide a playback more adapted to a movie
theater or a listening room.
Sorry, getting back here. I use such command line to extract the
audio (found in archiv - thanks to OP):

tccat -T 1,$I -i /dev/dvd -t dvd -d 0 | tcdemux -a 0 -x ac3 -S 0 -M
1 -d 0 |tcextract -t vob -x ac3 -a 0 -d 0 | tcextract -t raw -x
ac3 -d 0 > track$I.ac3

Does this include --ac52_drc_off and if not, how to change?

TIA.
--
bye maik
Tilmann Bitterberg
2003-08-23 11:39:52 UTC
Permalink
Post by Maik Holtkamp
Post by Florin Andrei
--a52_drc_off
disable liba52 dynamic range compression [enabled]
[...]
Post by Florin Andrei
If you let it enabled this this will totally disable the dynamic
range compression and provide a playback more adapted to a movie
theater or a listening room.
Sorry, getting back here. I use such command line to extract the
tccat -T 1,$I -i /dev/dvd -t dvd -d 0 | tcdemux -a 0 -x ac3 -S 0 -M
1 -d 0 |tcextract -t vob -x ac3 -a 0 -d 0 | tcextract -t raw -x
ac3 -d 0 > track$I.ac3
Does this include --ac52_drc_off and if not, how to change?
This is a command line probably for AC3 pass-through, no
decoding is beeing done (no tcdecode command) so --a52_drc_off
does not applies.

The --a52_* options gets passed down to tcdecode via the -A
commandline switch of tcdecode.

-A flag
audio flag for AC3/A52 decoder []. This flag determines the
down-mixing configuration. Valid choices for flag are determined
by the following bits set:

drc off 1
demux 2
dolby off 4

Add those numbers to turn multiple options on.

Greetings,
Tilmann
--
Sometimes transcode changes or | Searchable
adds new features while your | mailing-list archives
are encoding. | http://itdp.de/transcode-users/
-- ThOe | IRCnet #transcode
Henning Holtschneider
2003-08-17 16:59:32 UTC
Permalink
--On Samstag, 16. August 2003 17:37 -0700 Florin Andrei
Post by Florin Andrei
You may want to save the content of the DVD on the hard-drive first, and
extract the sound after that. You may use the transcode utilities
directly or, more easily, use dvd::rip.
Thanks for that tip! I used vobcopy to extract the data off the DVD and now
the basic processing seems to work. I managed to convert the audio data to
MP3 using the "raw" module. The lame module will just produce hissing sound
and the toolame module stops transcoding after processing the first ~15
minutes of the audio track. I still wonder why the ripping process with
transcode itself does not work ...
Post by Florin Andrei
transcode -a 0 -x null,vob -i /some/movie/vobs \
-E 44100 -J resample --a52_drc_off \
-y null,wav -o /dev/null -m sound.wav
The conversion works with this command, but the resulting file cannot be
played back (Windows Media player cannot find a suitable codec). I suppose
it still contains digital (AC3) sound?! Can I tell transcode to produce a
"plain" WAV file?

I want to burn an audio CD from the DVD soundtrack so I would like to avoid
unnecessary conversion steps.

Cheers,
hh
Florin Andrei
2003-08-17 19:25:47 UTC
Permalink
Post by Henning Holtschneider
Post by Florin Andrei
transcode -a 0 -x null,vob -i /some/movie/vobs \
-E 44100 -J resample --a52_drc_off \
-y null,wav -o /dev/null -m sound.wav
The conversion works with this command, but the resulting file cannot be
played back (Windows Media player cannot find a suitable codec). I suppose
it still contains digital (AC3) sound?! Can I tell transcode to produce a
"plain" WAV file?
What happens if you run the "file" command on the sound.wav?
Post by Henning Holtschneider
I want to burn an audio CD from the DVD soundtrack so I would like to avoid
unnecessary conversion steps.
Makes sense.
--
Florin Andrei

http://florin.myip.org/
Loading...