videos unir poner online musica conversor como archivos agregar audio video ffmpeg

audio - poner - unir archivos mp4



¿Cómo agregar un nuevo audio(sin mezclar) en un video usando ffmpeg? (6)

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 nueva pista de audio a video (no mezclar).

Pero actualicé el ffmpeg a la versión más nueva ( ffmpeg versión git-2012-06-16-809d71d ) y ahora en esta versión el parámetro -newaudio no funciona.

Dime por favor cómo puedo agregar audio nuevo a mi video (no mezclar) usando ffmpeg .


Agregar audio a video: copia de secuencia

ffmpeg -i video.avi -i audio.mp3 -codec copy -shortest output.avi

  • Omitir la opción -map utilizará la selección de transmisión predeterminada. Esto funcionará si su entrada de video no tiene audio.
  • Este ejemplo usa -codec copy to stream copy (sin recodificación; la calidad se conserva y es rápida).
  • La opción más -shortest hará que output.avi la misma duración que la entrada más corta.

Agregar audio a video: volver a codificar

Si a su salida no le gustan los formatos originales, o si desea cambiar los formatos, puede especificar los codificadores:

ffmpeg -i video.avi -i audio.mp3 -c:v libx264 -c:a libvorbis -shortest output.mkv

Para elegir manualmente flujos específicos

En ocasiones, la selección de transmisión predeterminada no le dará el resultado que desea. En este ejemplo, video.mp4 tiene video y audio, y audio.m4a solo tiene audio. Use -map para elegir video de video.mp4 y audio de audio.m4a :

ffmpeg -i video.mp4 -i audio.m4a -map 0:v -map 1:a -c copy -shortest output.mp4

  • -map 0:v - De la entrada 0 (la primera entrada, que es video.mp4 ) elije las v ideo secuencia (s).
  • -map 1:a - De la entrada 1 (la segunda entrada, que es audio.m4a ) elije la (s) transmisión (es) de audio.m4a .

Mezclando / combinando dos entradas de audio en una

Toma video de video.webm , y usa el filtro de amerge para combinar el audio de video.webm y audio.oga :

ffmpeg -i video.webm -i audio.oga -filter_complex / "[0:a][1:a]amerge=inputs=2[a]" / -map 0:v -map "[a]" -c:v copy -c:a libvorbis -ac 2 -shortest out.webm

Genera 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.

ffmpeg -i video.mp4 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 / -c:v copy -shortest output.mp4

Ver también


Código para agregar audio a video usando ffmpeg.

Si la duración del audio es mayor que la duración del video, reducirá el audio a la duración del video. Si quieres audio completo en video, quita -distinto del cmd.

String[] cmd = new String[]{"-i", selectedVideoPath,"-i",audiopath,"-map","1:a","-map","0:v","-codec","copy", ,outputFile.getPath()};

private void execFFmpegBinaryShortest(final String[] command) { final File outputFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/videoaudiomerger/"+"Vid"+"output"+i1+".mp4"); String[] cmd = new String[]{"-i", selectedVideoPath,"-i",audiopath,"-map","1:a","-map","0:v","-codec","copy","-shortest",outputFile.getPath()}; try { ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() { @Override public void onFailure(String s) { System.out.println("on failure----"+s); } @Override public void onSuccess(String s) { System.out.println("on success-----"+s); } @Override public void onProgress(String s) { //Log.d(TAG, "Started command : ffmpeg "+command); System.out.println("Started---"+s); } @Override public void onStart() { //Log.d(TAG, "Started command : ffmpeg " + command); System.out.println("Start----"); } @Override public void onFinish() { System.out.println("Finish-----"); } }); } catch (FFmpegCommandAlreadyRunningException e) { // do nothing for now System.out.println("exceptio :::"+e.getMessage()); } }


Ninguna de estas soluciones funcionó para mí. Se sobrescribió mi audio original o recibí un error como "error al mapear la memoria" con el ejemplo más complejo de ''amerge''. Parece que necesitaba -filter_complex amix.

ffmpeg -i videowithaudioyouwanttokeep.mp4 -i audiotooverlay.mp3 -vcodec copy -filter_complex amix -map 0:v -map 0:a -map 1:a -shortest -b:a 144k out.mkv


Si el video de entrada tiene varias pistas de audio y necesita agregar una más, utilice el siguiente comando:

ffmpeg -i input_video_with_audio.avi -i new_audio.ac3 -map 0 -map 1 -codec copy output_video.avi

-map 0 significa copiar (incluir) todas las transmisiones desde el primer archivo de entrada ( input_video_with_audio.avi ) y -map 1 significa incluir todas las transmisiones (en este caso una) desde el segundo archivo de entrada ( new_audio.ac3 ).


Si está utilizando una versión anterior de FFMPEG y no puede actualizar, puede hacer lo siguiente:

ffmpeg -i PATH/VIDEO_FILE_NAME.mp4 -i PATH/AUDIO_FILE_NAME.mp3 -vcodec copy -shortest DESTINATION_PATH/NEW_VIDEO_FILE_NAME.mp4

Tenga en cuenta que utilicé -vcodec


música mp3 a wav

ffmpeg -i music.mp3 music.wav

truncar para ajustar el video

ffmpeg -i music.wav -ss 0 -t 37 musicshort.wav

mezclar música y video

ffmpeg -i musicshort.wav -i movie.avi final_video.avi