Esta é uma pergunta de acompanhamento da minha pergunta anterior: FFmpeg dividiu o vídeo e mesclar de volta
Eu preciso concat
dos arquivos conforme sugerido. Eu estava usando o último que trabalhou em .avi, mas não em .mp4.
Usando o primeiro método, quando quero aparar áudio também, ele gera um erro:
Especificador de fluxo ': a' na descrição do filtro de filtros [0: a] trim = 0: 15, setpts = PTS-STARTPTS [a0]; [1: a] trim = 0: 5, setpts = PTS-STARTPTS [a1]; [0: a] trim = 20: 30, setpts = PTS-STARTPTS [a2]; [a0] [a1] [a2] concat = n = 3: a = 1: a = 0 [out] não corresponde a nenhum fluxo.
Eu tentei outro arquivo de substituição (que é um recorte do arquivo original), mas isso gera um erro diferente:
ffmpeg -i sample.mp4 -i ad2.mp4 -filter_complex "[0:v]trim=0:15,setpts=PTS-STARTPTS[v0]; [0:a]atrim=0:15,asetpts=PTS-STARTPTS[a0]; [1:v]trim=0:5,setpts=PTS-STARTPTS[v1]; [1:a]atrim=0:5,asetpts=PTS-STARTPTS[v1]; [0:v]trim=20:30,setpts=PTS-STARTPTS[v2]; [0:a]atrim=20:30,asetpts=PTS-STARTPTS[a2]; [v0][a0][v1][a1][v2][a2]concat=n=3:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" output.mp4
O erro é:
[Parsed_asetpts_7 @ 0x1831320] Media type mismatch between the 'Parsed_asetpts_7' filter output pad 0 (audio) and the 'Parsed_concat_12' filter input pad 2 (video)
[AVFilterGraph @ 0x17fd720] Cannot create the link asetpts:0 -> concat:2
Error initializing complex filters.
Invalid argument
Como posso corrigir isso?
Usando o segundo método, como posso fazer isso para o áudio? Então eu preciso salvá-lo como um arquivo de áudio separado, correto?
Usar o terceiro método é bom. No entanto, preciso manter o FPS e o GOP. Mas ele mexe com o fps e, apesar de ambos os vídeos serem 25 fps, a saída é 23.58xxx. Alguma maneira de manter o GOP e o fps?