Mesclar arquivos de vídeo via linha de comando?

4

É possível mesclar dois (ou mais) arquivos de vídeo da linha de comando? No Windows, pode-se fazer isso:

copy /b VTS_01_1.vob + VTS_01_2.vob + VTS_01_3.vob + VTS_01_4.vob Output.vob

Acho isso muito mais fácil e rápido do que usar um programa GUI dedicado. Existe um equivalente no Ubuntu?

    
por Joel DeWitt 28.07.2016 / 22:12

4 respostas

4
cat VTS_01_*.vob > output.vob

Versão aprimorada (isso mostrará uma barra de progresso):

cat VTS_O1_*.VOB | pv | dd of=output.vob

Semelhante ao segundo:

 pv VTS_01_*.vob > output.vob

Ah, você também pode mv do output.vob para .mpeg e reproduzi-lo no VLC ou em outro reprodutor de vídeo.

Usando o ffmpeg:

ffmpeg -i "concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB|VTS_01_4.VOB" -f mpeg -c copy output.mpeg

Os métodos que usam cat NÃO interpretam os arquivos e apenas os adicionam. Uma coisa típica que você notará é um pequeno hickup quando o jogador passa de 1 para o próximo VOB. Avidemux (GUI), por exemplo, também demux (é que a palavra correta?) Os arquivos, por isso é uma experiência mais suave.

Se você receber a mensagem de erro

  

ac3 em fluxos de sistema MPEG-1 não é amplamente suportado, considere usar o VOB ou o dvd muxer para forçar um fluxo de programa MPEG-2

então você precisará especificar o DVD como formato de saída, ajustando o comando ffmpeg acima com ... -f dvd ... .

    
por Rinzwind 28.07.2016 / 22:18
4

Se você estiver interessado em usar o FFmpeg (que abre a possibilidade de concatenar outros tipos de mídia menos tratáveis que .vob) você pode usar o seguinte para o seu exemplo:

ffmpeg -i "concat:VTS_01_1.vob|VTS_01_2.vob|VTS_01_3.vob|VTS_01_4.vob" -c copy output.vob

Confesso que o FFmpeg é um programa 'dedicado' que você prefere não usar, mas note que outros tipos de mídia podem requerer transcodificação antes da concatenação e, nesses casos, os serviços do FFmpeg serão necessários ...

Referências:

por andrew.46 28.07.2016 / 23:08
3

você pode usar o comando cat (concatenate) para isso.

No seu caso:

cat VTS_01_1.vob VTS_01_2.vob VTS_01_3.vob VTS_01_4.vob > Output.vob
    
por Adam Harrison 28.07.2016 / 22:22
1

VOB

O VOB requer cuidados especiais devido à sua estrutura potencialmente complexa e incongruências de data e hora, portanto, a concatenação cega pode ter resultados inesperados. Você deve usar ferramentas de estrutura de DVD para esse formato.

O código-fonte do FFmpeg vem com uma ferramenta ( tools/dvd2concat ) que utiliza lsdvd para produzir um script de concatenação adequado:

cd ffmpeg/tools
./dvd2concat path/to/dvd/structure > file.concat
ffmpeg -safe 0 -protocol_whitelist subfile,file,concat -f concat -i file.concat -map 0 -c copy -f dvd output.vob

Outros tipos de arquivos

ffmpeg tem três métodos para concatenar:

  • desmembramento de concatenar - Para concatenação geral ou para fazer isso sem recodificar.
  • protocolo de concat - semelhante ao uso apenas de cat . Para formatos que podem ser simplesmente unidos sem problemas (MPEG-1, MPEG-2 PS, DV, rawvideo).
  • filtro de concat - útil se você estiver realizando alguma filtragem (dimensionamento, sobreposições, etc.).

Veja também FFmpeg Wiki: Concatenate e FAQ do FFmpeg: Como posso concatenar arquivos de vídeo?

    
por LordNeckbeard 03.02.2017 / 00:45