El comando correcto de FFmpeg es:
ffmpeg -i video.mp4 -i audio.mp4 -map 0:0 -map 1:0 -c copy output.mp4
Esto proporcionará dos flujos de entrada, el video que ya tiene y el audio, por ejemplo, de un archivo MP4 con audio AAC, y los combinará usando las -map
opciones.
Aquí, el primer número 0:0
es el archivo de entrada ( 0
para el archivo de video y 1
el archivo de audio), y el segundo número es el flujo de ese archivo ( 0
ya que solo hay un flujo cada uno, video o audio). Las dos transmisiones se asignarán al archivo de salida, primero video, luego audio.
Los flujos de bits se copiarán y no se volverán a codificar utilizando la -c copy
opción Puede observar esto en la salida de FFmpeg:
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (copy)
-shortest
si desea que solo sea la duración de la entrada más corta (útil si el audio es música que es más larga que el video).Puedes usar
ffmpeg
para lograr eso. Solo lo estoy haciendo desde la parte posterior de mi cerebro debilitado, pero tal vez algo como esto funcione:fuente
ffmpeg
antes, no puedo recordar sus argumentos. Supongo que tienen que ver con el códec / formato, pero lo que sí-v:c
,-a:c
y-an
representan?-c:v
y-c:a
, no-v:c
y-a:c
. Además, al-an
deshabilitar la salida de audio, el archivo de resultados no volverá a tener audio. Si combina archivos, tendrá que asignarlos explícitamente a menos que FFmpeg pueda adivinar lo que quiere (por ejemplo, fusionar video AVI + audio WAV) / cc @popliteaHay algunos editores de video de código abierto.
En Windows hay Windows Movie Maker o Microsoft Live Movie Maker. Sin embargo, no tengo experiencia con estos.
En Linux hay OpenShot, que es bastante fácil de usar.
fuente