ECAL: Como traspasar el audio de un DVD a Mp3
Mi viejo amigo Christian me pidió que le pasara el audio de unos DVD de Genesis a Mp3. Más allá del crimen de codificar en Mp3 y no en ogg, es un problema interesante.
La solución, basada en este artículo, se basa en el uso de transcode. A continuación, presentaré una exposición detallada del procedimiento.
Identificación de las pistas
El disco a ripear se caracteriza porque todas las canciones están dentro de un mismo título, correspondiendo cada una a un capítulo (chapter) distinto. Por tanto, lo primero es saber en que título se encuentran los temas. Para ello, se puede buscar a mano con gmplayer o xine, o usartcprobe, de la siguiente manera
$ tcprobe -i /dev/dvd
[tcprobe] DVD image/device
(dvd_reader.c) mpeg2 ntsc 16:9 only letterboxed U0 720x480 video
(dvd_reader.c) DVD title 1/7: 1 chapter(s), 1 angle(s), title set 1
(dvd_reader.c) title playback time: 00:00:00.12 1 sec
(dvd_reader.c) [Chapter 01] 00:00:00.000 , block from 0 to 15
[tcprobe] summary for /dev/dvd, (*) = not default, 0 = not detected
import frame size: -g 720x480 [720x576] (*)
aspect ratio: 16:9 (*)
frame rate: -f 23.976 [25.000] frc=1 (*)
no audio track: use "null" import module for audio
[tcprobe] V: 24 frames, 1 sec @ 23.976 fps
[tcprobe] A: 0.02 MB @ 128 kbps
[tcprobe] CD: 650 MB | V: 650.0 MB @ 5452464.1 kbps
[tcprobe] CD: 700 MB | V: 700.0 MB @ 5871894.5 kbps
[tcprobe] CD: 1300 MB | V: 1300.0 MB @ 10905059.3 kbps
[tcprobe] CD: 1400 MB | V: 1400.0 MB @ 11743920.1 kbps
Por defecto, tcprobe entrega la estructura del primer título. En la tercera línea nos dicen que hay 7 títulos en el DVD. Esta serie de DVD tienen, generalmente, las canciones en el titulo 2, así que probaremos si efectivamente están allí.
$ tcprobe -i /dev/dvd -T2 -H 10
[tcprobe] DVD image/device
(dvd_reader.c) mpeg2 ntsc 16:9 only letterboxed U0 720x480 video
(dvd_reader.c) dts en surround sound mode drc 48kHz 6Ch
(dvd_reader.c) ac3 en surround sound mode drc 48kHz 6Ch
(dvd_reader.c) DVD title 2/7: 8 chapter(s), 1 angle(s), title set 2
(dvd_reader.c) title playback time: 00:45:33.10 2734 sec
(dvd_reader.c) [Chapter 01] 00:00:00.000 , block from 0 to 126031
(dvd_reader.c) [Chapter 02] 00:04:50.667 , block from 126032 to 263205
(dvd_reader.c) [Chapter 03] 00:10:07.000 , block from 263206 to 448518
(dvd_reader.c) [Chapter 04] 00:17:14.333 , block from 448519 to 601579
(dvd_reader.c) [Chapter 05] 00:23:07.300 , block from 601580 to 707258
(dvd_reader.c) [Chapter 06] 00:27:11.000 , block from 707259 to 890606
(dvd_reader.c) [Chapter 07] 00:34:13.800 , block from 890607 to 1014165
(dvd_reader.c) [Chapter 08] 00:38:58.734 , block from 1014166 to 1185297
[tcprobe] summary for /dev/dvd, (*) = not default, 0 = not detected
import frame size: -g 720x480 [720x576] (*)
aspect ratio: 16:9 (*)
frame rate: -f 23.976 [25.000] frc=1 (*)
audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x1000f [0x2000] (*)
audio track: -a 1 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000]
[tcprobe] V: 65551 frames, 2734 sec @ 23.976 fps
[tcprobe] A: 42.72 MB @ 128 kbps
[tcprobe] CD: 650 MB | V: 607.3 MB @ 1863.3 kbps
[tcprobe] CD: 700 MB | V: 657.3 MB @ 2016.7 kbps
[tcprobe] CD: 1300 MB | V: 1257.3 MB @ 3857.7 kbps
[tcprobe] CD: 1400 MB | V: 1357.3 MB @ 4164.5 kbps
Eureka! 8 capítulos, cada uno de unos 5 minutos de duración. La opción "-T" permite determinar el título a inspeccionar, en tanto que "-H 10" permite detectar con mayor precisión que tipo de pistas de audio y video tenemos en el DVD.
Determinado el título, tenemos que ver que pista de audio nos sirve, las cuales en la salida anterior son:
audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x1000f [0x2000] (*) audio track: -a 1 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000]
El código interno del codec de audio es el que aparece después de -n. Los AC3, que pueden ser procesados con transcode, tienen código 0x2000, así que la pista que ocuparemos será la "-a 1"
ProcesamientoUna vez que sabemos que títulos, capítulos y pistas de audio deseamos ripear, ocuparemos transcode para realizar el traspaso. La instrucción básica es la siguiente:
transcode -x null,dvd -i /dev/dvd -T1,3 -a 1 \ -y null,lame -b 320 -J resample -E 44100 -o audio
Las opciones importantes son:
- -T1,3: Define que se ripeara el capítulo 3 del título 1
- -a 1: Se ripeara la pista de audio 1
- -y null, lame: No se utilizará codec de video y el codec de audio será lame, el cual crea Mp3.
- -b 320 -J resample -E 44100: El bitrate del mp3 será de 320 y se resampleara de 48000Hz, que es la frecuencia de los DVD, a 44100Hz, que es típica de los Mp3 que pueden utilizar los reproductores comunes
En nuestro caso, debemos ripear 8 capítulos en el título 2. Para automatizar el proceso, utilizaremos un ciclo con for y seq, en el cual repetiremos el comando anterior con los números del 1 al 8 para los capítulos que corresponden del DVD. El comando completo sería:
for i in `seq 1 8`; \ do transcode -x null,dvd -i /dev/dvd -T2,$i \ -a 1 -y null,lame -b 320 -J resample -E 44100 \ -o audio_$i; done
Y voilá! Tenemos nuestro lindo DVD con audio transformado en un listado de mp3. Lo único que tenemos que hacer ahora es colocar los nombres correctos de los archivos y estamos listos para escucharlos en un reproductor portátil
- 210 lecturas

Enviar un comentario nuevo