ffmpeg dvd vob

FFMpeg abrir una cadena de DVD VOB?



(4)

Soy nuevo en FFMpeg, por lo que esta puede ser una pregunta tonta, pero no veo la respuesta en la documentación.

Quiero decodificar los marcos de un DVD vob. Abrir el primer VOB en el grupo funciona bien, pero ¿cómo le digo a ffmpeg que continúe con el próximo VOB y lea todos los VOB en un DVD?

Tengo los archivos VOB en una carpeta en un disco duro.


El formato VOB es un subconjunto de mpeg , por lo que debería poder combinar los VOB que desea leer tal como lo haría con los datos mpeg: concatenándolos.

cat first.VOB second.VOB third.VOB | ffmpeg -i - outfile.mp4

Alzando el comentario de Matt Gallagher para aumentar la longevidad / visibilidad:

Las versiones más recientes de ffmpeg admiten la concatenación como operador en el archivo de entrada. Así que puedes usar ... ffmpeg -i concat:VTS_01_0.VOB/|VTS_01_1.VOB/|VTS_01_2.VOB outfile.mp4


La funcionalidad incorporada de concatenar parece estar basada en * NIX y no funcionó en Windows para mí. En Windows, VobMerge parecía funcionar para unirse a los archivos VOB relevantes (que para la película principal en un DVD parecía ser el conjunto que comienza con 1 GB de tamaño).

Addenda

También puede unirse a archivos VOB en Windows directamente desde la línea de comandos :

copy /b "vob1.vob" + "vob2.vob" + "vob3.vob" "voboutput.vob"

Puede omitir las comillas si no hay espacios en los nombres de archivo, pero asegúrese de recordar los signos /b y todos los signos + .



en Windows preferí "refactorizar" la concatenación, y también no confiar en nombres de archivos predefinidos:

copy /b e:/VIDEO_TS/vts*.vob temp.vob ffmpeg -i temp.vob .... newfile.ogg

/ b significa: copia binaria; De lo contrario, las nuevas líneas y otros se tratan de manera diferente.

Advertencias:

  • a veces hay archivos VOB que no forman parte de la película, y no pude encontrar una forma automática de detectar cuál es cuál
  • en sistemas de E / S lentos esto agrega un enorme ahorro de tiempo: se necesita tiempo para escribir y leer el archivo temporal.