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.
fonte
Respostas:
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,
ffmpeg
foi substituído poravconv
. 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)
fonte
-ss
argumento, ou seja,9:00
por 9 minutos deve ser expresso,00:09:00
caso contrário ele será ignorado silenciosamente. Eu acho que essa resposta também deve ser atualizada para usoavconv
, de acordo com o aviso do ffmpeg. Obrigado.No Ubuntu 16.04, o equivalente a
ffmpeg
é o comandoavconv
Para instalá-lo, execute:
Exemplo de linha de comando para cortar um vídeo por tempo:
fonte