Adicionar áudio mais curto ao vídeo com loop com controle de volume de áudio e vídeo e somente por um período específico usando FFMpeg

1

Adicione áudio mais curto ao vídeo com loop com controle de volume de áudio e vídeo e apenas por um período específico ((eu quero adicionar áudio e manter áudio e som dos vídeos em ambos os casos))

Eu tenho duas partes de um problema

1) o áudio tem 27 segundos de duração 2) O vídeo tem 2 minutos e 24 segundos de duração

a) Eu quero fazer o loop do áudio e adicioná-lo ao vídeo por exemplo (adicionar áudio apenas) de 50 segundos a 1 min 30 segundos (não o vídeo inteiro, mas ainda assim obter o vídeo inteiro como saída) dentro do vídeo, com o áudio em loop

b) crie um clipe de vídeo de 50 segundos a 1 min 30 segundos (não vídeo inteiro como saída) dentro do vídeo, com o áudio em loop

Eu usei o comando follwing do ffmpeg para adicionar áudio ao vídeo, o que adiciona o vídeo inteiro. Como podemos i) especificar apenas uma parte do vídeo para ter o áudio em loop ii) criar um novo clipe para a duração selecionada com o áudio em loop

até agora consegui fazer um loop e alterar o volume de áudio e vídeo e misturá-los com o seguinte comando para todo o vídeo

"-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

Estou preso no gerenciamento de tempo em ambos os casos

    
por 1234567 04.10.2017 / 11:01

2 respostas

1

Use

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

O trim mantém os primeiros 40 segundos do áudio em loop, o adelay muda seu tempo de início para 50000 milissegundos, ou seja, 50 segundos.

    
por 04.10.2017 / 12:57
0

este é um código para adicionando um áudio ao vídeo com 1) loop de áudio 2) alterar o volume de áudio e vídeo 3) criar um novo arquivo de duração definida apenas 4) criar um arquivo com duração de vídeo original e áudio em uma determinada parte do vídeo

A) apenas para novo arquivo de duração definida

"-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

o que fazemos é adicionar "-ss","50", "-t","40"

b) para um arquivo com duração de vídeo original e áudio em uma determinada parte do vídeo

"-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

o que fazemos é adicionar "-ss","50" mas não adiciona "-t", "40" '

    
por 04.10.2017 / 14:31