Testei um comando ffmpeg para gerar miniatura ffmpeg -y -ss 0 -to 10 -i acb.mp4 -qscale:v 2 -frames:v 1 abc.jpeg
no macOS e funcionou bem, mas deu erro para o mesmo comando no ubuntu 18.04.2 (AWS EC2) para ffmpeg.
erro:
Option to (record or transcode stop time) cannot be applied to input url abc.mp4 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
Error parsing options for input file abc.mp4.
Error opening input files: Invalid argument
Estou usando AWS EC2 (ubuntu 18.04.2), usei sudo apt install ffmpeg. Alguém pode me ajudar com isso, se eu tiver que instalá-lo de uma maneira diferente ou se estiver faltando alguma coisa aqui. Desde já, obrigado.
Responder1
Remover-to 10
- Você está gerando um único quadro, então não precisa declarar um tempo de parada de duração com
-to
. Uma única imagem não tem duração, portanto-to
é ignorada de qualquer maneira. -ss
(deslocamento de horário de início) com um valor de0
não está fazendo nada, então você também pode removê-lo.
Exemplo:
ffmpeg -y -i acb.mp4 -qscale:v 2 -frames:v 1 abc.jpeg
O mesmo que acima, mas obtém uma captura de tela em 30 segundos:
ffmpeg -y -ss 30 -i acb.mp4 -qscale:v 2 -frames:v 1 abc.jpeg
Obtenha uma captura de tela às 22 horas, 15 minutos e 5 segundos, mas produza uma qualidade inferior:
ffmpeg -y -ss 22:15:05 -i acb.mp4 -q:v 5 -frames:v 1 abc.jpeg
Você pode usar o alias -q:v
em vez de -qscale:v
, se desejar.
Por que funciona no macOS e não no Ubuntu
A -to
opção anteriormente era apenas uma opção de saída. Ele foi atualizado para funcionar também como arquivo de entrada (declarado antes -i
). Você está usando o FFmpeg 3.4.6, que é muito antigo para ser usado -to
como opção de entrada. Sua versão do FFmpeg no macOS é nova o suficiente para ser usada -to
como opção de entrada. Mas, como mencionado anteriormente, ao gerar uma única imagem, -to
nada acontece e ela é ignorada.