Ferramenta de terminal para juntar vídeos mp4

11

Eu gostaria de participar de vídeos MP4 como eu participar de pdfs por pdfjoin.

Existe alguma ferramenta padrão para participar de vídeos?

Léo Léopold Hertz 준영
fonte

Respostas:

13

Sim, você pode unir vários vídeos em um arquivo usando os comandos do terminal padrão. Usando um simples cat vai querer que você queira.

cat video1.avi video2.avi videon.avi > output.avi

Há um grande, mas aqui - este método irá gerar o cabeçalho video1.avi no output.avi. Portanto, o cabeçalho de output.avi é o mesmo que video1.avi, então, na maioria dos players de vídeo, parecerá que o video2.avi e o videon.avi estão perdidos - fonte 1 , fonte 2 .

Para corrigir isso, você precisa de ferramentas adicionais. Existem muitas outras ferramentas de terminal para unir filmes que também atualizam o cabeçalho. As ferramentas de edição de vídeo mais conhecidas são mencoder (que é uma parte do MPlayer) e ffmpeg . Ambos têm uma enorme quantidade de opções e configurações e está além deste fórum para entrar em muitos detalhes, mas vou dar os comandos curtos abaixo.

O uso e a instalação do mencoder ou ffmpeg podem ser intimidadores, mas os recursos de edição de vídeo são os mais poderosos que encontrei até agora. Como a instalação da fonte pode ser um incômodo para usuários nativos do OS X, eu aconselho você a usar Homebrew .

Para instalar essas ferramentas usando Homebrew , execute este one-liner no seu terminal:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Homebrew agora está instalado, é aconselhável seguir as sugestões do instalador após a instalação. Agora instalamos ffmpeg e mencoder usando brew.

brew install ffmpeg mplayer

Agora podemos usar o mencoder para mesclar os dois vídeos:

mencoder -oac copy -ovc copy -idx -o output.mp4 video1.mp4 video2.mp4 video3.mp4

Ou podemos usar o ffmpeg para mesclar os dois vídeos:

 ffmpeg -i concat:"video1.mp4|video2.mp4" -codec copy output.mp4

Você especificamente solicita arquivos .mp4. mp4 é um formato de contêiner, é possível que a instalação padrão de ffmpeg ou mencoder não tem os pacotes corretos de codificação / decodificação ('codecs') por padrão e você precisa instalá-los separadamente. Mas isso está além do escopo deste tópico.

CousinCocaine
fonte
Note que você pode precisar escapar do caractere "|" que é especial para muitos shells, então ffmpeg -i concat: video1.mp4 \ | video2.mp4
CousinCocaine
2
Usar aspas simples ('') pode ser mais fácil do que escapar do caractere de barra. No comando usado na resposta, não importa de nenhuma maneira.
nohillside
Muito boa resposta com uma explicação clara. Obrigado!
Léo Léopold Hertz 준영
2
Tentei instalar o Homebrew usando o comando terminal como descrito nesta resposta e recebi "The requested URL returned error: 400 Bad Request". Conforme Página Homebrew , o novo comando do terminal é /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Sparky
@Sparky ir para brew.sh para instruções de instalação.
CousinCocaine