ffmpeg - mapeando múltiplos áudios para um canal

0

Eu quero produzir um arquivo de vídeo com vários sons, mas colocá-los em um canal.
Eu tentei algumas maneiras de fazer isso, mas sempre recebo um vídeo com vários fluxos de som.
Como este

Meu comando é

ffmpeg -r 30 -i test_%03d.png 
-itsoffset 10 -ss 5 -t 20 -i s01.wav
-itsoffset 15 -ss 10 -t 30 -i s02.wav 
-map 0:v -map 1:a:0 -map 2:a:0 -c:v libopenh264 -c:a mp3 test.mp4

Novo teste de comando

-framerate 30 -i test_%03d.png -ss 0.2 -t 1 -i sound01.wav -ss 1 -t 2 -i sound02.wav
-filter_complex
"[1] aformat=sample_fmts=s16p:sample_rates=44100:channel_layouts=mono [a1];
 [2] aformat=sample_fmts=s16p:sample_rates=44100:channel_layouts=mono [a2]; 
 [a1]adelay=400|400,apad[b1]; 
 [a2]adelay=900|900[b2]; 
 [b1][b2]amerge=2[a]" 
 -map 0:v -map "[a]" -c:v libopenh264 -c:a mp3 -ac 2 output.mp4

Como os filtros não puderam escolher seus formatos , adicionei um formato ao comando. Mas agora está ocorrendo outro erro, Nenhum layout de canal para entrada 1 e saída de vídeo sem som01, por favor, me ajudem!

    
por Ives 24.12.2017 / 08:43

1 resposta

0

Para combinar vários fluxos de áudio em um, você precisa usar filtros para mesclar os fluxos:

ffmpeg -framerate 30 -i test_%03d.png -i s01.wav -i s02.wav \
       -filter_complex "[1][2]amerge=2[a]" \
       -map 0:v -map "[a]"   
       -c:v libopenh264 -c:a mp3 -ac 2 test.mp4

O framerate é a opção certa para fluxos de imagem e brutos.

O -ac 2 mistura o áudio mesclado em 2 canais, já que esse é o limite máximo do codificador de MP3.

Para o comando atualizado,

ffmpeg -framerate 30 -i test_%03d.png 
       -ss 5 -t 20 -i s01.wav
       -ss 10 -t 30 -i s02.wav
       -filter_complex "[1]adelay=10000|10000,apad[a1];
                        [2]adelay=15000|15000[a2];
                        [a1][a2]amerge=2[a]" \
       -map 0:v -map "[a]" -c:v libopenh264 -c:a mp3 test.mp4

O adelay preenche o áudio na frente e leva valor em milissegundos por canal. O apad preenche o áudio no final e é necessário porque o amerge termina com o fluxo mais curto.

    
por 24.12.2017 / 09:19