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 ffmpeg
y avconv
comandos 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
ffmpeg
comando 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:yuv420p
El siguiente comando
ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
por 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.avi
por 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 argument
El 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.avi
por 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 height
El 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.avi
Por 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 mismatch
El siguiente comando
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
realizó 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.avi
que convirtió el video, pero con un subtítulo no deseado. No está claro en absoluto cómo puedo evitar usar un subtítulo.
fuente
ffmpeg
está en desuso desde hace mucho tiempo, que se supone que usar su propio sucesor:avconv
.avconv
para convertir archivos VOB a avi? El comandoavconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi
dio 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.avi
intente estoError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
mencoder yourvob -oac copy -ovc x264 -x264encopts pass=1:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o /dev/null
entoncesmencoder 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
-nosub
interruptor, 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 x264
lista de otros códecs
x264encopts
direct=auto
pass=2
bitrate=900
frameref=5
bframes=1
cálculo de movimiento de píxeles completos alg .:
me=umh
NOTA: umh - búsqueda desigual de hexágonos múltiples (lenta)
habilitar todos los tipos de macrobloques:
partitions=all
cuantificación óptima de distorsión de velocidad:
trellis=1
NOTA: 2: habilitado durante todas las decisiones de modo (lento, requiere subq> = 6)
Incremento del cuantificador / valor de engaño:
qp_step=4
NOTA: valor máximo por el cual el cuantificador puede incrementarse / disminuirse entre cuadros (predeterminado: 4)
compresión del cuantificador (predeterminado: 0.6):
qcomp=0.7
direct_pred=auto
intervalo máximo entre fotogramas clave en fotogramas:
keyint=300
opciones después de esto son los filtros de video:
-vf
NOTA: Para los conmutadores de filtro de video, es importante que lo use
harddup
como último filtro: obligará a MEncoder a escribir cada fotograma (incluso los duplicados) en la salida. Además, es necesario utilizarscale=$WIDTH,-10
con$WIDTH
como-1
para 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
-10
harddup
fuente
-noaudio
y 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.avi
archivo (u otro formato)?-oac copy
con 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.vob
en 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 semplayer
comportan 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
mencoder
páginas. Hay varios grupos piratas que solo usanmencoder
para 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 (
libflac
estaba ausente en mi sistema, así que lo reemplacé conlibmp3lame
( fuente ) y el-crf
valor 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.desktop
archivo como este:fuente