Seus arquivos não serão unidos corretamente porque algo não corresponde.
Como muitos outros, tive problemas com a sincronização de som em vídeos mesclados. e enquanto o MP4Box funciona bem se os clipes tiverem especificações idênticas, em alguns casos eu seria atingido pela “Nenhuma faixa de destino adequada encontrada - criando uma nova”. Nesse caso, Totem (também conhecido como Videos) não reproduziria esse segmento no arquivo juntado Depois de algumas tentativas e erros e outras pesquisas, desenvolvi o seguinte método para lidar com a participação em vídeos que até agora têm funcionado com qualidade aceitável (para mim).
Se os tamanhos dos frames não corresponderem (juntando erros referentes às faixas de vídeo):
Normalize o vídeo sem interromper o áudio (-c: uma cópia) definindo restrições (divisíveis por 8 para compatibilidade máxima do codec) para segmentos não correspondentes
Comandos de exemplo
width=856
height=480
avconv -i input.mp4 -filter:v "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" -c:a copy output.mp4
Se o áudio não corresponder (unindo erros pertencentes a faixas de áudio):
Normalizar áudio
Processe áudio sem interromper o vídeo (c: v copy) para que todos os clipes correspondam ao codec, frequência e taxa de bits desejados com c: uma frequência de codec -ar como -ar 48000 ee taxa de bits com b: a 128k para estéreo (64K por canal parece um bom alvo) ou o que quer que corresponda.
Exemplo: avconv -i input.mp4 -c:v copy -c:a libmp3lame -ar 48000 b:a 128k output.mp4
(note que libmp3lame é um codec para áudio em mp3) Você pode obter uma lista de codificadores com suporte avconv emitindo o comando avconv -codecs
ou restringir as coisas a um% codificado avconv -codecs|grep *codecname*
por exemplo avconv -codecs|grep mp3
Agora que normalizamos os arquivos, podemos nos juntar a eles. Neste exemplo vou juntar os arquivos com o MP4Box. Se você não tem, você pode obtê-lo emitindo o comando sudo apt-get install gpac
Junte os arquivos com o comando MP4Box file1.mp4 -cat file2.mp4 -cat file3.mp4 -cat file4.mp4 -out joinedfile.mp4
(observe que não há nenhum gato antes do primeiro arquivo e cada arquivo adicional é precedido por -cat e o arquivo de destino é precedido por -out)
Se estiver usando MP4Box (recomendado para MP4) para entrar, você pode achar que tem que processar todos os clipes com avconv se as especificações aparecem ou não para evitar o erro “Nenhuma faixa de destino adequada encontrada - criando uma nova (tipo vide)
"
Nota: Descobri que o Avidemux tem problemas com vídeos codificados usando arquivos H.264 / AVC (por totem) devido aos B-frames como referência. Isso parece resultar em um áudio fora de sincronia ao entrar mesmo quando você escolhe copiar áudio e vídeo sem remux. Falha ao não escolher o modo de segurança e fora de sincronia ao usar o modo de segurança
Fontes:
link
link
link
Observação: Até onde eu sei, outros formatos (contêineres) têm restrições similares para tamanho de quadro e taxas de áudio correspondentes, então isso pode funcionar também para avi se você tentar unir via cat ou mencoder após normalizar o vídeo e o áudio .
Opcional: Use o Handbrake para recodificar o arquivo associado para tamanho menor, se desejado, com uma taxa de quadros variável e uma configuração de qualidade constante de 25 (configurações sugeridas - ajuste conforme necessário para suas expectativas de material e qualidade )