Como posso saber se um vídeo tem uma taxa de quadros variável? Não preciso ser capaz de fazer isso programaticamente, só não quero ter que instalar algum programa com centenas de megabytes; por exemplo, se eu pudesse fazer isso com o VLC Media Player, seria perfeito.
O FFmpeg possui um filtro vfrdet para essa finalidade.
No registro, você verá uma leitura do formulário,
Um valor diferente de zero para VFR indica um fluxo vfr. O primeiro valor entre colchetes é o número de quadros com uma duração diferente da duração esperada implícita na taxa de quadros detectada do fluxo. O segundo valor é o número de quadros com a duração esperada. O valor VFR é a razão do primeiro número para a soma de ambos.
Algumas ressalvas: um valor muito baixo ou muito alto indica alguns quadros errantes com duração fora do padrão, geralmente o primeiro e/ou último quadro. Estes podem ser considerados CFR para a maioria dos propósitos. Um valor em torno de 0,50 indica que o fluxo tem uma taxa de quadros e/ou base de tempo para a qual a duração do quadro nocional não pode ser expressa exatamente na base de tempo do fluxo, portanto, o aplicativo que gerou o arquivo oscilou a duração, por exemplo, se um fluxo tiver um fps de 6 e uma base de tempo de 1/100, então os timestamps ideais seriam 0, 16.667, 33.334, 50.000, 66.667, 83.333, 100.000 para o primeiro segundo do vídeo, mas os timestamps são números inteiros, então o muxer pode armazenar 0, 16, 34, 50, 67, 83, 100. Isso pode aparecer como um fluxo com valor VFR de 0,5
Basta usar o ffprobe
E verifique o
avg_frame_rate
parâmetro do fluxo de vídeo desejado. Se o valor deste parâmetro for uma fração como estacom um denominador diferente de 1, então o arquivo de vídeo tem uma taxa de quadros variável.
Se o valor for assim
certifique-se de que o stream tenha uma taxa de quadros constante.
Pode-se usar o MediaInfo (5 MB, plataforma cruzada, tem uma versão portátil no Windows, grátis) para saber se um vídeo tem uma taxa de quadros variável: