Cómo convertir avi (xvid) a mkv o mp4 (h264)

19

Muy novato cuando se trata de video. Estoy tratando de dar sentido a lo que estoy encontrando a través de Google ... pero es principalmente griego para mí.

Tengo un montón de archivos Avi que no se reproducen en mi caja WD TV Play. Mediainfo me dice que son xvid. Las especificaciones para el cuadro muestran que debería estar bien ... pero hurgar en los foros dice que es impredecible. Así que me gustaría intentar convertirlos en archivos MKV o mp4 codificados con h264.

Entiendo que avconv es la herramienta, pero leer el manual me tiene realmente muy confundido.

Probé el ejemplo muy básico de:

avconv -i file.avi -c copy file.mp4

Tardó menos de 4 segundos. Y funcionó ... más o menos. Se "jugó" porque algo apareció en la pantalla ... pero hubo artefactos horribles y las escenas simplemente se fundieron entre sí. Quiero preservar la calidad si es posible.

No me preocupa el tamaño del archivo. Tampoco estoy terriblemente preocupado por el tiempo que toma, siempre que pueda hacerlo en un lote.

¿Puede alguien familiarizado con el proceso darme un comando con las opciones?

Gracias por tu ayuda.

Estoy publicando la información de medios en caso de que ayude:

General
Complete name                            : \\SERVER\Video\Public\test.avi
Format                                   : AVI
Format/Info                              : Audio Video Interleave
File size                                : 189 MiB
Duration                                 : 11mn 18s
Overall bit rate                         : 2 335 Kbps
Writing application                      : Lavf52.32.0

Video
ID                                       : 0
Format                                   : MPEG-4 Visual
Format profile                           : Advanced Simple@L5
Format settings, BVOP                    : 2
Format settings, QPel                    : No
Format settings, GMC                     : No warppoints
Format settings, Matrix                  : Default (H.263)
Muxing mode                              : Packed bitstream
Codec ID                                 : XVID
Codec ID/Hint                            : XviD
Duration                                 : 11mn 18s
Bit rate                                 : 2 129 Kbps
Width                                    : 720 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 29.970 fps
Standard                                 : NTSC
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Compression mode                         : Lossy
Bits/(Pixel*Frame)                       : 0.206
Stream size                              : 172 MiB (91%)
Writing library                          : XviD 1.2.1 (UTC 2008-12-04)

Audio
ID                                       : 1
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Mode                                     : Joint stereo
Mode extension                           : MS Stereo
Codec ID                                 : 55
Codec ID/Hint                            : MP3
Duration                                 : 11mn 18s
Bit rate mode                            : Constant
Bit rate                                 : 192 Kbps
Channel(s)                               : 2 channels
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Stream size                              : 15.5 MiB (8%)
Alignment                                : Aligned on interleaves
Interleave, duration                     : 24 ms (0.72 video frame)
bcsteeve
fuente
Debe considerar no volver a codificar de un códec con pérdida a otro. En el caso de que su video esté en el códec Xvid, simplemente remuxlo al contenedor Matroska.
v010dya

Respuestas:

44

El comando estándar de http://manpages.ubuntu.com/manpages/precise/man1/avconv.1.html muestra esto:

avconv -i test.avi -c:v libx264 -c:a copy outputfile.mp4

Esto volverá a codificar su video a h264 (= AVC) y mantendrá su sonido sin cambios, que es mp3 y completamente legal para el estándar.

Algunas otras opciones a considerar con esta línea de comando son:

  • Ajuste la calidad del video de salida usando el -bparámetro (bitrate) o use el Factor de tasa constante (CRF) con algo como-crf 22
  • Utilice un ajuste preestablecido libx264 como -preset veryslowpara mejorar el video

Si usa estos, las opciones deben colocarse después de la -c:v libx264opción ...

También puede mirar los programas GUI winffy avidemuxque harán las cosas menos complicadas. (También handbrakees bueno, pero nunca llegué a un acuerdo con él)

thom
fuente
¡Decir ah! No sé cómo miras ese traqueteo de una página de manual y sacas esa línea como un "comando estándar" obvio ... ¡pero estoy agradecido de que lo hayas hecho! Funcionó. Lo aprecio.
bcsteeve
Gracias por mencionar Handbrake: lo tuve y lo olvidé por completo. ¡Terminé abriéndolo, buscando mi carpeta de películas, sorbí todos los videos, puse todos en cola y presioné "Codificar"!
scorpiodawg
Para el sonido AAC, muchos dispositivos pueden tener un decodificador de hardware, por lo que mantenerlo como MP3 no es necesariamente mejor.
ccpizza
4

En caso de que esté buscando algo gráfico, puede considerar usar el paquete mkvtoolnix-gui. De hecho, depende de la utilidad de línea de comandos, pero ejecutará el comando con todas las opciones necesarias para usted.

mkvmerge gui 1

Lo primero que deberá hacer es agregar los archivos que contienen todas las transmisiones necesarias. Puede hacerlo (obviamente) presionando el botón Agregar y seleccionando el archivo o arrastrando sus archivos al área "Archivos de entrada". No debe usar el botón agregar, a menos que su intención sea colocar el contenido de un archivo después del contenido de otro (haciendo que la duración del archivo final sea la suma de todos los adjuntos).

Como está diciendo que planea convertir .aviarchivos, simplemente debe agregar un archivo a la vez. Tenga en cuenta que el primer archivo que agregará establecerá automáticamente el nombre del archivo de salida, coincidirá con el nombre de entrada, pero la extensión se cambiará a .mkv. Por supuesto, puede cambiar eso si lo desea.

Después de agregar algo, podrá cambiar los parámetros de las secuencias (como el idioma asignado, si la pista está "activada" de manera predeterminada y si un usuario puede optar por desactivar esta secuencia si lo desea).

Puedes dar el título de la transmisión. Sugiero que si tiene video de audio múltiple, lo use junto con el idioma. Por ejemplo, puede tener "original" o "doblaje de una sola voz" o "comentario del director" para los nombres de las pistas. Muchos jugadores te mostrarán esto cuando selecciones la transmisión para jugar, y es muy útil. Sin embargo, trate de no repetir la información allí. No hay ninguna razón para escribir "Idioma inglés" cuando solo puede configurar el código de idioma de la pista.

También hay algunas opciones específicas, que dependerán de la transmisión en la que esté trabajando.

mkvmerge gui 2

A veces es posible que desee agregar algunos archivos adjuntos a su archivo. Si agrega una imagen, muchos administradores de archivos mostrarán esta imagen como el ícono del archivo de video final. Si está mezclando algún tipo de película, y tiene la tapa, puede ser una buena opción ponerla como archivo adjunto.

mkvmerge gui 3

Finalmente, en la pestaña Global, puede establecer los metadatos para todo el archivo. Lo más común es establecer el título. Se completará previamente con los datos tomados del primer archivo que haya agregado a los "Archivos de entrada".

También puede agregar información de capítulos. Mkvmerge puede leer archivos de capítulos ogm y capítulos xml. También le permite editar archivos de capítulos, pero tenga en cuenta que esta pestaña funciona como una aplicación separada, por lo que no editará capítulos que se agreguen a su archivo de salida, deberá guardarlos en esa pestaña, y luego agréguelos como la entrada al archivo que ahora está muxing.

La característica interesante de mkvmerge gui es "Copiar al portapapeles", que copia el comando de terminal exacto que la aplicación planea ejecutar. Si tiene la intención de mezclar muchos archivos, puede configurar uno, tal como lo desee, luego copie el comando en el portapapeles y cree un script bash que haga todos los archivos que desee a la vez.

v010dya
fuente
¿Cómo lo comienzas?
Uvasal
1
mmg es la respuesta
uvasal
2

Avidemux es un editor de video gratuito diseñado para tareas simples de corte, filtrado y codificación. Admite muchos tipos de archivos, incluidos AVI, archivos MPEG compatibles con DVD, MP4 y ASF, utilizando una variedad de códecs. Las tareas se pueden automatizar mediante proyectos, cola de trabajos y potentes capacidades de secuencias de comandos. Providemux está disponible para Ubuntu.

sudo apt-get update
sudo apt-get install avidemux
kyodake
fuente
0

Utilicé los siguientes dos comandos para convertir mis archivos AVI a archivos MP4 que se transmitirían correctamente desde mi WD My Cloud Mirror:

ffmpeg -i infile.AVI -strict -2 -profile:v baseline -pix_fmt yuv420p temp.mp4
MP4Box -mpeg4 -brand mp42:0 -add temp.mp4#video:name= -add temp.mp4#audio:name= -new outfile.mp4

ffmpegconvierte el archivo AVI a MP4, cambiando el perfil de video y el formato de píxeles para que se ajusten a los valores ampliamente aceptados. MP4Boxreempaqueta las transmisiones en el MP4 final y agrega metadatos estándar.

Anillo de patricio
fuente
-strict -2no es necesario para codificar audio AAC a menos que ffmpegsea ​​muy antiguo. Es posible que pueda omitir MP4Boxsi agrega la -movflags +faststartopción de salida ffmpeg.
llogan