Eu tentei com o FFmpeg versão 0.8.5, usando um arquivo de entrada AVI como você.
O seguinte comando produziu resultados corretos:
ffmpeg -i 1.avi -ss 00:00:05 -t 00:00:01.50 -vcodec libx264 -vpre default -acodec libfaac out1.mp4
Aqui estão algumas dicas para trabalhar:
Atualize para a versão mais recente do FFmpeg.
Para o Ubuntu, siga os tutoriais aqui . Eu tenho usado eles mesmos.
No OS X, instale o FFmpeg usando o Homebrew , chamando brew install ffmpeg
.
No Windows, basta fazer o download das versões pré-compiladas .
Use o formato de tamanho correto.
Observe que o formato de duração usa pontos decimais, e não vírgulas, por exemplo, hh:mm:ss[.xxx]
.
Remova a opção -threads 0
.
Ativar -threads 0
, no entanto, me deu o erro "nal buffer is too small". Eu nem sei por que eles permitem um valor de zero aqui, e a menos que você tenha uma razão específica para fazer isso, eu apenas deixaria esse argumento de fora. Idealmente, deve ativar auto-threads
em libx264
, mas pode haver um bug que eu não conheço.
Codifique sem imagens B.
Dependendo do tamanho do vídeo de saída, não sei se libx264
é capaz de produzir com segurança a saída usando imagens B que fazem referência a uma ou mais imagens intra-codificadas. Isso pode até levar aos artefatos que você descreve.
Você pode tentar desativar imagens B (ou "quadros B") com -bf 0
.