Como faço para cortar (tempo sem imagem) um arquivo de vídeo MP4

17

Estou procurando um aplicativo para me ajudar a cortar bits do início e do fim de um arquivo mp4 de forma eficiente e sem perdas .

por exemplo, existe algo que me permita encontrar um quadro-chave e copiar o lote entre esse e outro quadro-chave, sem precisar recodificar o lote (lento e com perdas) e sem perder a sincronização AV?

Por mp4, quero dizer vídeo H264 + áudio AAC em um contêiner MP4

Antes de h264 dias, o Avidemux foi uma excelente ferramenta para isso, pois você pode reutilizar os fluxos codificados originais, o que significa que não há perda e leva apenas alguns segundos para criar a versão cortada, mas é impossível com o h264 - a abertura um oferece duas opções: use o modo de segurança (que perde a sincronização AV maciça) ou use o modo perigoso que trava imediatamente.

AFAIK, Openshot, Kdenlive, Pitivi etc. farão isso decodificando e recodificando (lento e com perdas).

Parece uma coisa simples (provavelmente mostrando a minha falta de conhecimento aqui!), Então estava me perguntando se estou perdendo alguma coisa.

artfulrobot
fonte
Se você precisa para cortar o final do vídeo, consulte a resposta que dei em outro tópico: askubuntu.com/questions/412558/...
v010dya
2
superuser.com/questions/377343/… se relaciona bem e oferece uma solução semelhante à abaixo, mas adiciona algumas boas informações.
Pbhj 6/06

Respostas:

24

ffmpeg

ffmpeg -i source.mp4 -ss 00:00:00 -t 00:00:00 -vcodec copy -acodec copy splice.mp4

Isso leva o source.mp4 e, usando os mesmos codecs de áudio e vídeo e sem qualidade degradante, leva um tempo após o início do vídeo -ss e gera seu splice.mp4

Observe que o tempo é muito sensível à formatação (acima é um exemplo de formatação). Além disso, em algumas distribuições, ffmpegfoi substituído por avconv. Simplesmente execute o comando acima e substitua a palavra ffmpeg por avconv para resolver isso.

Outra excelente fonte de informações sobre esse tópico. (Obrigado @pbhj)

earthmeLon
fonte
3
Brilhante. Observe que você não pode abreviar o -ssargumento, ou seja, 9:00por 9 minutos deve ser expresso, 00:09:00caso contrário ele será ignorado silenciosamente. Eu acho que essa resposta também deve ser atualizada para uso avconv, de acordo com o aviso do ffmpeg. Obrigado.
Artfulrobot
Nota: esse aviso apenas reflete que você instalou o avconv em vez do ffmpeg; portanto, o executável do ffmpeg é na verdade apenas um invólucro em torno do avconv e esse invólucro poderá ser preterido em breve. Se você tivesse o ffmpeg instalado, mas não o avconv, não receberia esse aviso. Não se destina a significar que o próprio ffmpeg está obsoleto (porém, versões recentes do Ubuntu optaram por instalar o avconv por padrão, em vez do ffmpeg).
thomasrutter
5

No Ubuntu 16.04, o equivalente a ffmpeg é o comandoavconv

Para instalá-lo, execute:

sudo apt-get install libav-tools

Exemplo de linha de comando para cortar um vídeo por tempo:

avconv -i originalFile.ogv -ss 00:00:00 -t 00:00:10 -vcodec copy -acodec copy croppedFile.ogv
AlejandroVD
fonte
Não disponível em versões posteriores do Ubuntu.
lolmaus - Andrey Mikhaylov 10/09/19