Estoy tratando de convertir un archivo VOB copiado de un DVD a un avi en Ubuntu 13.10. Lo intenté dvdrip, lo que falló debido a un error de recuento de cuadros o algo así. También probé acidrip, pero siempre elegí una pista de audio que no quería usar. Preferiría tener una solución de línea de comandos para crear un avi con las siguientes características:
- utilizable con mplayer (es decir, utilizando las funciones de paso)
- con el subtítulo según sea necesario (o nadie)
- con la pista de audio correcta
- con video y audio sincronizados
He intentado algunas ffmpegy avconvcomandos y logró crear un avi, pero el vídeo y el audio estuviera completamente fuera de sincronización. Entonces, ¿qué opciones debo usar para convertir el archivo VOB en un archivo avi?
Agradecería algunas explicaciones sobre las opciones sugeridas!
Información Adicional:
El
ffmpegcomando da el siguiente resultado para el archivo de entradaInput #0, mpeg, from 'Videos/Test/VIDEO_TS/VTS_01_1.VOB': Duration: 00:04:53.32, start: 0.045500, bitrate: 29284 kb/s Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 7500 kb/s, 27.68 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0.1[0x82]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s Stream #0.2[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s Stream #0.3[0x81]: Audio: ac3, 0 channels [buffer @ 0x15ca6e0] w:720 h:480 pixfmt:yuv420pEl siguiente comando
ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avipor ejemplo resultó en un bloqueo de mi sesión de Ubuntu.
El siguiente comando
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avipor ejemplo resultó en el siguiente error:
Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argumentEl siguiente comando
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k output.avipor ejemplo resultó en el siguiente error:
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or heightEl siguiente comando
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a ac3 -b:a 128k output.aviPor ejemplo, parecía funcionar para algunos cuadros. Pero muy pronto encontré muchos errores de la forma
[ac3 @ 0x120d480] frame sync error Error while decoding stream #0:1 frame CRC mismatchEl siguiente comando
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avirealizó algunas conversiones, pero está (i) usando subtítulos aunque no quería usarlos (ii) obtuve el audio incorrecto (el audio y el video están terriblemente fuera de lugar) y (iii) parece ser más lento de lo que realmente va la película (podría tomar 2 horas para una película de 90 minutos).
Traté de ordenar aquí (tercera publicación de Xeratul), pero se detuvo con el error
FATAL: Cannot initialize video driver.Intenté la sugerencia que se hace a continuación para mirar la página del mencoder . Esta página sugiere usar dos pases:
el primero lee información sobre la película, el segundo usa esa información para codificar.
pero ni se explica qué información extraer ni cómo usarla en el segundo paso. Entonces utilicé el siguiente comando:
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -nosound -ovc x264 \ -x264encopts direct=auto:pass=2:bitrate=900:frameref=5:bframes=1:\ me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \ -vf scale=-1:-10,harddup -o video.avique convirtió el video, pero con un subtítulo no deseado. No está claro en absoluto cómo puedo evitar usar un subtítulo.
fuente

ffmpegestá en desuso desde hace mucho tiempo, que se supone que usar su propio sucesor:avconv.avconvpara convertir archivos VOB a avi? El comandoavconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avidio un errorApplication provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument...avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.aviintente estoError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or heightmencoder yourvob -oac copy -ovc x264 -x264encopts pass=1:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o /dev/nullentoncesmencoder yourvob -oac copy -ovc x264 -x264encopts pass=2:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o video.avi: tomó eso en parte del Arch doc @ dg99 vinculado.Respuestas:
Para deshacerse de los subtítulos, creo que puede agregar el
-nosubinterruptor, justo después del nombre del archivo .VOB.Ejemplo
Detalles
Estos encantamientos son a menudo muy densos, así que para descomponerlo un poco
Videos/Test/VIDEO_TS/VTS_01_1.VOB-o video.avi-nosub-nosound-ovc x264lista de otros códecs
x264encoptsdirect=autopass=2bitrate=900frameref=5bframes=1cálculo de movimiento de píxeles completos alg .:
me=umhNOTA: umh - búsqueda desigual de hexágonos múltiples (lenta)
habilitar todos los tipos de macrobloques:
partitions=allcuantificación óptima de distorsión de velocidad:
trellis=1NOTA: 2: habilitado durante todas las decisiones de modo (lento, requiere subq> = 6)
Incremento del cuantificador / valor de engaño:
qp_step=4NOTA: valor máximo por el cual el cuantificador puede incrementarse / disminuirse entre cuadros (predeterminado: 4)
compresión del cuantificador (predeterminado: 0.6):
qcomp=0.7direct_pred=autointervalo máximo entre fotogramas clave en fotogramas:
keyint=300opciones después de esto son los filtros de video:
-vfNOTA: Para los conmutadores de filtro de video, es importante que lo use
harddupcomo último filtro: obligará a MEncoder a escribir cada fotograma (incluso los duplicados) en la salida. Además, es necesario utilizarscale=$WIDTH,-10con$WIDTHcomo-1para mantener la anchura original o una nueva, por lo general más pequeño, ancho: es necesario ya que el códec H.264 utiliza píxeles cuadrados y DVDs en lugar de utilizar píxeles rectangulares.scale=-1-10harddupfuente
-noaudioy con-oac copy, obtengo el audio, que no está sincronizado con el video. Es desplazado, a una velocidad diferente o ambas. ¿Alguna sugerencia de cómo puedo obtener también el audio correcto? ¿Y qué hay de múltiples archivos VOB? ¿Cómo empaquetar el contenido en un solo.aviarchivo (u otro formato)?-oac copycon 2 pasadas, ya que estás volviendo a codificar el video, tendrás que volver a codificar el audio junto con él. En cuanto a "embalaje" ellos, los archivos VOB deberían fusionarse gusta esto:cat *.vob all.vob. Luego se usaall.voben el cmd mencoder. Hay otras formas de hacer esto también.Si tiene la intención de usar
mplayer, entonces debe intentarlomencoder( http://www.mplayerhq.hu ). Una de sus mejores características es que las opciones de reproducción que conoce semplayercomportan de la misma manera al codificar. Además, hay mucha documentación e hilos de correo electrónico que cubren exactamente lo que está preguntando:fuente
mencoderpáginas. Hay varios grupos piratas que solo usanmencoderpara todo su trabajo; así de simple, poderoso y automatizable puede ser.Sé que esta es una publicación antigua, pero al buscar este problema en Internet aparece la pregunta anterior, y algunas otras entradas son aún más antiguas.
He probado diferentes herramientas pero al final estoy más satisfecho con este comando:
Es una ligera modificación de la que encontré aquí .
Acabo de reemplazar el códec de audio (
libflacestaba ausente en mi sistema, así que lo reemplacé conlibmp3lame( fuente ) y el-crfvalor para aumentar la calidad. También se pueden usar otros formatos, comomp4.En mi prueba (con un procesador bastante mediocre), un archivo vob de 2.6 GB (ya concatenado de otros tres archivos) se convirtió en un video avi de 960 MB de calidad comparable en aproximadamente 50 minutos.
20 es la calidad medianamente aceptable (en los artículos de ayuda de Handbrake que he visto). Los números más grandes reducen el tamaño a expensas de la calidad. Por encima de 20 la pérdida de calidad es clara.
Es mejor usar ese comando en una terminal para ver el progreso, matarlo más fácilmente, etc.
Lo que me gusta de este comando es que proporciona un buen equilibrio entre calidad, tiempo y tamaño, y que se puede usar fácilmente desde el menú contextual del administrador de archivos.
Cómo hacerlo depende del administrador de archivos. El comando se puede agregar fácilmente a Thunar y Nautilus como una 'acción personalizada'. Lo he agregado a Dolphin con un
~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktoparchivo como este:fuente