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 -newaudio
no 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
-map
opción, se usará la selección de transmisión predeterminada . Esto funcionará si su entrada de video no tiene audio.-codec copy
para transmitir una copia (sin volver a codificar; la calidad se conserva y es rápida).-shortest
opción tendráoutput.avi
la 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.mp4
tiene video y audio, yaudio.m4a
solo tiene audio. Use-map
para elegir videovideo.mp4
y 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 lasa
secuencias de audio.Mezclar / combinar dos entradas de audio en una
Tome videos de
video.webm
y use el filtro de combinación para combinar el audio devideo.webm
yaudio.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:0
lugar de-map 0 -map 1
hacerlo me funcionó. ¡Gracias!-shortest
opció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 0
significa copiar (incluir) todas las secuencias del primer archivo de entrada (input_video_with_audio.avi
) y-map 1
significa 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");
?