Encontré este hilo: la configuración del freno de mano para convertir MKV a MP4 manteniendo la calidad original
Y puedo "convertir" .MKV a .MP4 con el siguiente código:
for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -c:v copy -c:a copy "%%~na .mp4"
pause
El único problema es que hay 2 carriles de audio. El alemán y el inglés. Con el código anterior, solo copia el idioma alemán (1er). Pero no el segundo idioma de audio. ¿Cómo puedo hacer eso?
Por el momento, acabo de convertir .MKV a .MP4 solo con lang alemán. Pero quiero poder cambiar el idioma con mi reproductor VLC de alemán a inglés.
¡Gracias por tu ayuda!
EDITAR: He encontrado ese hilo aquí: http://ffmpeg.gusari.org/viewtopic.php?f=25&t=611
Y probé con esa información. Cambié mi código anterior, a este código:
for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -map 0:0 -map 0:1 -map 0:2 -c:v copy -c:a:0 copy -c:a:1 copy "%%~na.mp4"
pause
¿Hice algo mal aquí? ¿Cómo podría agregar los subtítulos en alemán / inglés a eso? SI agregaría un mapa de subtítulos allí, y mi .MKV no tiene subtítulos, ¿sería un problema? Solo quiero crear un archivo .bat que convierta un .MKV con 2 bandas sonoras y 2 subtítulos. Para poder "remux" (o convertir no sé) todos mis archivos .MKV a .MP4 sin perder ninguna información.
Por el momento, mi .MKV no tiene subtítulos, por lo que no es importante. Pero es mejor prepararse para el futuro, ¿verdad?
Entonces, dígame si lo hice bien, y quizás también cómo agregar los subtítulos. Es la primera vez que uso FFmpeg. Acabo de descargarlo, nunca me enteré. Realmente nunca usé el CMD para eso.
[mp4 @ 00000000002fb3a0] Codec for stream 0 does not use global headers but cont ainer format requires global headers [mp4 @ 00000000002fb3a0] Codec for stream 1 does not use global headers but cont ainer format requires global headers [mp4 @ 00000000002fb3a0] Codec for stream 2 does not use global headers but cont ainer format requires global headers [mp4 @ 00000000002fb3a0] track 1: codec frame size is not set [mp4 @ 00000000002fb3a0] track 2: codec frame size is not set
Ese es un error que obtengo. Pero el archivo funciona. Puede verlo, puede cambiar el audio, la misma calidad ... hmmRespuestas:
ffmpeg no asigna automáticamente todas las pistas; la selección de transmisión predeterminada solo asignará un audio, un video y una pista de subtítulos a la salida. Si desea asignar todas las transmisiones, use
-map 0
. Si desea poder seleccionar qué asignar, primero deberá analizar el archivo de entrada (ffmpeg -i input.mkv
) y utilizar algunas secuencias de comandos para construir el comando de conversión final. ffprobe puede ser útil para eso. Ver FFmpeg Wiki: FFprobe Tips para ejemplos.Puede especificar
-c copy
que la transmisión copie todas las transmisiones, sin importar de qué tipo sean. También puede indexar transmisiones de video y audio por separado, por lo que su comando se puede acortar a:fuente
for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -c:v copy -c:a copy "%%~na.mp4" pause
y funcionó. Obtuve sonido en alemán e inglés, y la misma calidad / tamaño de video. PERO recibí un mensaje de error! Incluso con ese mensaje de error, todavía funciona. Incluso en el televisor Sony a través de USB. ¡Vea el mensaje de error en un comentario arriba! :-) ¿Sabes lo que significa el error? Lo busqué en Google, y no obtuve respuesta.Hay un programa de código abierto llamado VCT: https://sourceforge.net/projects/videoconvertertranscoder/?source=directory
Es una GUI para ffmpeg. También puede editar el comando ffmpeg manualmente. Tiene una pestaña llamada Transcode donde puedes volver a empaquetar MKV a MP4, pero esta pestaña no tiene opciones para agregar subtítulos.
Si desea volver a empaquetar MKV a MP4 y agregar subtítulos al mismo tiempo, este es el procedimiento:
Por supuesto, si no le importa codificar dos veces y no le gusta escribir comandos, también puede hacerlo así:
captura de pantalla de hacer la codificación solicitada MKV a MP4
fuente
Bueno, estoy usando un archivo .bat como este:
Pero recibo un mensaje de error, pero el .MP4 aún funciona bien. Aquí un archivo de registro: pastie.org/private/9lqyvhyotnh1o4gp6rg5g
El problema es que mi viejo televisor Sony a veces se congela mientras veo el .MP4. No puedo decirte si es solo el "reproductor" del televisor o el archivo convertido. La GUI parece buena. Pero si quieres convertir como 20 archivos seguidos, es mucho hacer clic. El archivo .bat simplemente lo hace automáticamente con todos esos archivos en una carpeta.
Quizás alguien sabe por qué recibo un mensaje de error, y si este script es incorrecto o no :)
fuente