Porra, os argumentos do ffmpeg, a documentação e até a saída do erro são confusos. O que eu quero é montar as imagens na ordem em "input.txt" em um arquivo de vídeo. Alguém me disse para usar o demuxer concat anteriormente, mas como especificar a taxa de quadros?
O comando que a pessoa me deu foi ffmpeg -f concat -i input.txt -vf format=yuv420p -movflags +faststart output.mp4
. Como eu estava montando imagens sem -movflags +faststart
, omiti-as para testes mais simples.
Eu usei caminhos completos para as imagens e isso de alguma forma causou problemas de segurança. Pesquisei no Google e descobri que preciso adicionar -safe 0
. Então, eu tentei ffmpeg -f concat -framerate 30 -safe 0 -i input.txt -vf output.mp4
, mas isso causa:
Taxa de quadros da opção não encontrada.
Por que os parâmetros são tão complicados? Resumindo, o que eu quero fazer é:
- O "input.txt" contém um
file 'full png path'
por linha. - Use "input.txt" como entrada.
- A taxa de quadros de saída é 30
- O nome do arquivo de saída é "output.mp4" (o formato de vídeo é mp4)
- Diferente do acima, use as configurações padrão
Qual é o argumento ffmpeg correto para isso?
A
-framerate
opção é específica para os formatos de entrada que não armazenam uma taxa de quadros, como fluxos brutos ou sequências de imagens.No seu caso, você pode reprogramar os frames durante a filtragem.
ffmpeg -f concat -safe 0 -i input.txt -vf "settb=AVTB,setpts=N/30/TB,fps=30" output.mp4