Necesito convertir un archivo de video del contenedor Matroska al contenedor mp4. El archivo Matroska contiene una pista de video h.264 y una pista de sonido AC3. Debería ser posible hacer esto sin pérdidas, pero ¿cómo hacerlo con herramientas nativas de Ubuntu?
La transcodificación no es una opción.
Chromecast
soporteH.264
conAAC
oMP3
en unMP4
contenedor. Es muy fácil transmitir videos desde su computadora aChromecast
si tiene Chrome con la extensión Google Cast. Simplemente arrastre y suelte unaMP4
codificación de transmisión correcta a una ventana del navegador y comience a transmitir.Respuestas:
Quizás la herramienta más fácil para eso es
ffmpeg
, oavconv
dellibav-tools
paquete. Libav es una bifurcación de FFmpeg, que Ubuntu cambió durante unos años hasta Ubuntu 15.04. Es uno de los backends para muchas de las herramientas GUI mencionadas en otras respuestas.Cambiar el contenedor sin volver a encontrar contenido no podría ser más simple:
Detecta automáticamente una conversión de contenedor Matroska a MP4 basada en nombres de archivo de entrada / salida.
-codec copy
copias de flujo, o "re-muxes", los flujos de la entrada a la salida sin volver a codificar. Piense en ello como copiar y pegar.El comportamiento de selección de flujo predeterminado es seleccionar solo un flujo por tipo de flujo. Por ejemplo, si su entrada tiene dos transmisiones de video y una transmisión de audio, entonces solo se seleccionará la transmisión de video con el tamaño de cuadro más grande. Agregue
-map 0
si desea seleccionar todas las transmisiones desde la entrada.Es posible que algunos contenedores no admitan algunos formatos. Por lo tanto, verifique si su formato de contenedor elegido , ya sea
mkv
,mp4
o inclusoavi
tiene soporte para todo el contenido en sus archivos (video, audio, subtítulos, datos, etc.). Por ejemplo,mp4
no admite subtítulos (.srt
archivos) SubRip .fuente
avconv -i input.mkv -c:v copy -c:a libfaac output.mp4
(usé ffmpeg, supongo que avconv tiene los mismos argumentos de línea de comando aquí)-map 0
obtener ambas transmisiones de audio? Como dije en la respuesta: "El comportamiento de selección de flujo predeterminado es seleccionar solo un flujo por tipo de flujo"-c:s mov_text
opción si necesita mantener, por ejemplo.srt
pista de subtítulosObtenga el software necesario
Extraer video y audio del archivo matroska
Primero debe verificar qué pistas contiene el archivo matroska con
mkvmerge --identify video.mkv
Luego extraiga video y audio de acuerdo con sus pistas con:
mkvextract tracks video.mkv 1:video.h264 2:audio.ac3
Mux audio y video en contactor mp4
MP4Box -fps 24 -add video.h264 -add audio.ac3 video.mp4
Tuve que agregar la
-fps 24
opción porqueMP4Box
no detectó fps de video correctamente. Dependiendo del uso,AC3
la pista de audio debe volver a codificarse en otra cosa antes de la muxing.Ahora tiene transmisiones remuxed del contenedor matroska al contenedor mp4 sin perder calidad.
EDITAR: MP4 no admite oficialmente el audio AC3, por lo que la pista de audio debe convertirse a un formato compatible (por ejemplo, AAC, MP3) si desea que el archivo se pueda reproducir con algo más que VLC.
fuente
Puedes usar Avidemux
Tiene buena interfaz GUI.
Al convertir de mkv a mp4, no se vuelve a codificar.
La conversión se realiza en un minuto (para un video de 60 minutos).
sudo apt-get install avidemux
Abra el archivo mkv en avidemux.
Seleccione el modo seguro si se le solicita.
Deja el video como copia.
Elija Archivo-> Propiedades. Compruebe si el códec de audio es
aac
.aac(faac)
.copy
. (A veces, usando esta opción, el audio puede estar fuera de sincronización o distorsionado, en ese caso, seleccione en suaac(faac)
lugar).Seleccione
mp4
para el formato.Seleccione guardar, elija ubicación y escriba un nombre de archivo con
.mp4
la extensión.Nota: A veces (~ 10% de probabilidad) puede fallar. Entonces usar
handbrake(re-encode)
.Nota 2: hay dos enlaces que te ayudan:
http://www.ubuntugeek.com/avidemux-free-video-editor-designed-for-simple-cutting-filtering-and-encoding-tasks.html
http://www.ubuntugeek.com/how-to-convert-mkv-file-into-mp4-file-using-avidemux.html
fuente
Puedes usar mi aplicación, dmMediaConverter . Simplemente deje " copiar " para ambas secuencias marcadas (sin transcodificación) y coloque .mp4 en el nombre del archivo de salida. Eso es. Muy simple. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html
fuente
Como MPEG Parte 14 admite h.264 y AC3 de forma nativa sin transcodificación, simplemente puede cambiar el nombre del archivo para que tenga una
.mp4
extensión en lugar de una.mkv
extensión.fuente
Puede probar HANDBRAKE agregando su PPA escribiendo este código en la terminal:
fuente