Mezclar audio sobre video usando Ffmpeg

Mezclar audio sobre video usando Ffmpeg

Así que he pasado por muchas pruebas y todavía parece que no puedo hacer que el audio se mux sobre video usando ffmpeg y no puedo entender dónde me estoy equivocando, así que realmente agradecería un poco de ayuda.

Tengo este vídeo. Descarga de vídeo

Y si ejecuto ffmpeg -i me da esto.

 Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 366x662 [SAR 1:1 DAR 183:331], 755 kb/s, 24 fps, 24 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 105 kb/s (default)

Así que transmite 0:0

Y tengo esta pieza de audio. Descarga de audio

y cuando ejecuto ffmpeg me sale esto.

Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 277 kb/s
Stream #0:1: Video: png, rgb24, 400x400, 90k tbr, 90k tbn, 90k tbc

Entonces, lo que debo hacer es copiar mi audio 0:0 para reemplazar el audio del video 0:1 sin volver a codificar todo el archivo.

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:1 -map 0:0 -shortest out3.mp4 

Respuesta1

El primer número de la -mapopción es el índice del archivo de entrada. Entonces, si usas 0dos veces, solo estás usando testing.mp4.

Pruebe esto en su lugar:

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out3.mp4 

Aquí, 0:v:0selecciona la primera secuencia de video del primer archivo de entrada y 1:a:0selecciona la primera secuencia de audio del segundo archivo de entrada. En principio, :0no es necesario para tus archivos, pero no está de más tenerlo allí en caso de que haya varias pistas de vídeo/audio.

Ver elEntrada wiki de FFmpeg sobre la -mapopciónpara más.

información relacionada