É possível mesclar arquivos de vídeo usando 'cat'?

16

Gostaria de saber se é possível mesclar arquivos de vídeo usando o comando cat ? Quero dizer, o arquivo resultante será reproduzido sem problemas?

    
por Hamed Momeni 25.07.2012 / 09:03

4 respostas

20

Sim, é possível. Mas nem todos os formatos suportam isso.

FAQ do ffmpeg :

A few multimedia containers (MPEG-1, MPEG-2 PS, DV) allow to join video files by merely concatenating them.

Ao converter para os formatos RAW, você também tem uma grande chance de que os arquivos possam ser concatenados.

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi

Mas usar cat dessa maneira criou arquivos intermediários, que não são necessários. Essa é uma abordagem melhor para evitar a criação desses arquivos intermediários:

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi
    
por 25.07.2012 / 12:02
7

Existem dois tipos de arquivos de mídia

  • streamable

  • não-streamable

A principal diferença é como os dois formatos de arquivo incorporam meta-informação. com formatos non-streamable , o meta-informationc ("header") é armazenado em uma posição específica no arquivo, geralmente no início, às vezes no final. Você não pode simplesmente concatenar esses arquivos, pois a meta-informação de um dos arquivos estará em um local não padrão e, portanto, será ignorada.

OTOH, streamable formatos precisam ser capazes de lidar com os ouvintes que começarão a reproduzir o arquivo "em algum lugar no meio". Portanto, esses formatos continuam a reenviar a meta-informação e até permitem atualizá-la dentro do arquivo / fluxo. Esses formatos podem ser simplesmente concatenados.

    
por 19.09.2013 / 10:05
1

Como BЈовић disse, em geral, cada arquivo tem seu próprio cabeçalho. Experimente com este exemplo a partir de Como fazer o Ubuntu :

mencoder -ovc copy -oac copy video1.avi video2.avi -o completevideos.avi 
    
por 25.07.2012 / 11:56
0

Não, isso não é possível, porque todo arquivo de vídeo tem um cabeçalho. Para mesclar vídeos, você precisa usar uma ferramenta (por exemplo, ffmpeg ou mencoder ).

    
por 25.07.2012 / 09:11