Agregue audio más corto al video con bucle con control de volumen tanto de audio como de video y solo durante una duración específica usando FFMpeg

Agregue audio más corto al video con bucle con control de volumen tanto de audio como de video y solo durante una duración específica usando FFMpeg

Agregue audio más corto al video con bucle con control de volumen tanto de audio como de video y solo por una duración específica ((quiero agregar audio y mantener el sonido tanto del audio como del video en ambos casos))

tengo dos partes de un problema

1) el audio dura 27 segundos 2) el vídeo dura 2 minutos y 24 segundos

a) Quiero hacer un bucle del audio y agregarlo al video, por ejemplo (agregar solo audio) de 50 segundos a 1 minuto y 30 segundos (no todo el video, pero aún así obtener el video completo como salida) dentro del video, con el bucle. audio

b) crear un clip de vídeo de 50 segundos a 1 minuto y 30 segundos (no el vídeo completo como salida) dentro del vídeo, con el audio en bucle

He usado el siguiente comando de ffmpeg para agregar audio al video, lo que agrega todo el video, ¿cómo podemos i) especificar solo una parte del video para tener el audio en bucle ii) crear un nuevo clip para la duración seleccionada con el audio en bucle?

Hasta ahora he podido realizar bucles y cambiar el volumen de audio y video y mezclarlos con el siguiente comando para todo el video.

"-y","-i",videofile, "-filter_complex",
                        "amovie=audiofile:loop=1000,asetpts=N/SR/TB,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.5[a1];" +
                        "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a2];" +
                        " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]",
                        "-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-shortest","-preset", "ultrafast", outputfile

Estoy estancado en la gestión del tiempo en ambos casos.

Respuesta1

Usar

amovie=audiofile:loop=1000,asetpts=N/SR/TB,atrim=0:40,adelay=50000|50000,apad,aformat=...

El ajuste mantiene los primeros 40 segundos del audio en bucle, el retraso cambia su tiempo de inicio a 50000 milisegundos, es decir, 50 segundos.

Respuesta2

este es un código para agregar un audio al video con 1) bucle de audio 2) cambiar el volumen tanto del audio como del video 3) crear un nuevo archivo de duración establecida solamente 4) crear un archivo con la duración del video original y el audio en una determinada parte de video

A) solo para archivos nuevos de duración establecida

"-y","-i",j,
                        "-filter_complex",
                        "amovie="+audio+":loop=999,asetpts=N/SR/TB," +
                                "atrim=0:40,adelay=50000|50000,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.5[a1];" +
                                "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=2.0[a2];" +
                                " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]",
                        "-ss","50", "-t","40","-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-preset", "ultrafast", out

lo que hacemos es agregar"-ss","50", "-t","40"

b) para un archivo con duración de video original y audio en una determinada parte del video

"-y","-i",j,
                            "-filter_complex",
                            "amovie="+audio+":loop=999,asetpts=N/SR/TB," +
                                    "atrim=0:40,adelay=50000|50000,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.5[a1];" +
                                    "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=2.0[a2];" +
                                    " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]",
                            "-ss","50", "-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-preset", "ultrafast", out

lo que hacemos es agregar"-ss","50" pero no agregues"-t","40"`

información relacionada