Usé un comando como:
ffmpeg -i video.avi -i audio.mp3 -vcodec codec -acodec codec output_video.avi -newaudio
en la última versión para agregar una nueva pista de audio al video (no mezclar).
Pero actualicé el ffmpeg a la versión más reciente (versión ffmpeg git-2012-06-16-809d71d ) y ahora en esta versión el parámetro -newaudiono funciona.
Dime por favor cómo puedo agregar nuevo audio a mi video (no mezclar) usando ffmpeg.

Respuestas:
Agregar audio al video: copia de transmisión
-mapopción, se usará la selección de transmisión predeterminada . Esto funcionará si su entrada de video no tiene audio.-codec copypara transmitir una copia (sin volver a codificar; la calidad se conserva y es rápida).-shortestopción tendráoutput.avila misma duración que la entrada más corta.Agregue audio al video: vuelva a codificar
Si a su salida no le gustan los formatos originales, o si desea cambiar los formatos, puede especificar los codificadores:
Para elegir manualmente secuencias específicas
A veces, la selección de transmisión predeterminada no le dará el resultado que desea. En este ejemplo
video.mp4tiene video y audio, yaudio.m4asolo tiene audio. Use-mappara elegir videovideo.mp4y audio deaudio.m4a:-map 0:v- Desde la entrada0(la primera entrada, que esvideo.mp4), elija lav(s) secuencia (s) ideo.-map 1:a- Desde la entrada1(la segunda entrada, que esaudio.m4a), elija lasasecuencias de audio.Mezclar / combinar dos entradas de audio en una
Tome videos de
video.webmy use el filtro de combinación para combinar el audio devideo.webmyaudio.oga:Generar audio silencioso
Puede usar el filtro anullsrc para hacer una transmisión de audio silenciosa. El filtro le permite elegir el diseño de canal deseado (mono, estéreo, 5.1, etc.) y la frecuencia de muestreo.
Ver también
fuente
-map 0:0 -map 1:0lugar de-map 0 -map 1hacerlo me funcionó. ¡Gracias!-shortestopción funcionó mejor para mí.música mp3 a wav
truncar para ajustar el video
mezclar música y video
fuente
Si el video de entrada tiene varias pistas de audio y necesita agregar una más, use el siguiente comando:
-map 0significa copiar (incluir) todas las secuencias del primer archivo de entrada (input_video_with_audio.avi) y-map 1significa incluir todas las secuencias (en este caso una) del segundo archivo de entrada (new_audio.ac3).fuente
Ninguna de estas soluciones me funcionó. Se estaba sobrescribiendo mi audio original, o recibía un error como "no se pudo asignar la memoria" con el ejemplo más complejo de 'amerge'. Parece que necesitaba -filter_complex amix.
fuente
Nada funcionó para mí (creo que fue porque mi video de entrada .mp4 no tenía ningún audio), así que encontré que esto funcionó para mí:
fuente
Si está utilizando una versión anterior de FFMPEG y no puede actualizar, puede hacer lo siguiente:
Tenga en cuenta que usé -vcodec
fuente
Código para agregar audio a video usando ffmpeg.
Si la duración del audio es mayor que la duración del video, se reducirá la duración del audio al video. Si desea audio completo en video, elimine -shortest del cmd.
String[] cmd = new String[]{"-i", selectedVideoPath,"-i",audiopath,"-map","1:a","-map","0:v","-codec","copy", ,outputFile.getPath()};fuente
Environment.getExternalStorageDirectory().getAbsolutePath()+"/videoaudiomerger/"+"Vid"+"output"+i1+".mp4");?