Taxa de quadros variável (ou VFR) é um termo em compactação de vídeo para um recurso suportado por alguns formatos de contêiner que permite que a taxa de quadros mude ativamente durante a reprodução do vídeo ou abandone completamente a ideia de taxa de quadros e defina o código de tempo individual para cada quadro .
Então eu entendo esse conceito. Mas isso levanta uma infinidade de questões, e a maioria dos blocos de informações são esboços:
São todos fps decimais vfr; o fps inteiro pode ser vfr? Ou é específico de como o vídeo foi feito, como quando você grava sua tela com OBS e define o fps para 30, mas obtém um decimal 29,777? O vfr realmente existe apenas em vídeos gravados na vida real, mas a animação 3D/2D não teria vfr? Não vejo o que ser um decimal tem a ver com a definição, qualquer valor inteiro também poderia caber nele. Eu sei que você pode usar -vfrdet no ffmpeg para saber se algo é vfr ... mas se todos os vfr são decimais, então qual é o objetivo, por que não apenas verificar o fps.
Se você recodificar o vídeo vfr no mesmo fps, a saída ainda manterá a mesma velocidade e número de quadros ou haverá algum tipo de perda de dados (fora da perda de qualidade do codec) que difere do fps constante? A reprodução de um vídeo vfr mostra TODOS os quadros ou tende a pular quadros (suponhamos que o hardware esteja funcionando perfeitamente)?
Por que nem todos os editores de vídeo suportam valores de fps não inteiros? Quero dizer, qualquer coisa que eu possa expressar como uma fração de números inteiros deve estar disponível como uma configuração de entrada de fps ... caso contrário, isso anula o objetivo da "edição de vídeo". Qual é exatamente a razão para esses supostos editores de vídeo totalmente carregados limitarem você a apenas 5 fps predefinidos, ou seja, (30/60/24/23,97/25). Estou ainda mais confuso porque alguns editores de vídeo, embora digam que suportam 60fps, suportam apenas edição de linha de tempo de 60fps... e o valor de fps de suporte da saída está listado (antes mesmo de você exportar!) como 59,94 e vejo vídeos tutoriais OFICIAIS contando para mim e para todos que 59,94 é igual a 60. Não tenho certeza se isso está relacionado ao vfr ou a outra coisa.
O valor de fps de um vfr é apenas o fps médio de todo o vídeo? Ou é algum meio mais avançado de cálculo/média? Qual é o papel de ter um fps 'médio' listado singular em um vídeo vfr? A definição afirma que o vídeo é independente de qualquer fps... existe algum tipo de pacote de dados especial que diz ao player de vídeo para reproduzir o vídeo de uma determinada maneira, de modo que algumas partes sejam mais rápidas/mais lentas da maneira desejada? O vfr não pode significar tecnicamente que o início de um vídeo é reproduzido a 60 fps e os últimos 10 segundos a 5 fps? Como um player de vídeo saberia reproduzir o início a 60 fps... e o final a 5 fps... se tiver apenas 1 número para desligar.
Responder1
Are all decimal fps vfr; can integer fps be vfr?
Não, um número fracionário de quadros por segundo ainda pode ser constante. Por exemplo, NTSC (o padrão de televisão dos EUA) tem uma taxa de quadros constante de 29,97 (geralmente representada como 30.000/1.001) quadros por segundo.
Does vfr really only exist on real-life recorded video, but 3d/2d animation wouldn't have vfr?
O conteúdo é irrelevante. A animação tende a ser criada com uma taxa de quadros específica em mente. Mas não há razão para que isso aconteça.
I don't see what being a decimal has to do with the definition
Nada.
why not just check the fps instead.
O que é "verificar o fps", o que isso significa (ver ponto 4)
If you re-encode vfr video at the same fps,
Depende totalmente de COMO você codifica e de como funciona a ferramenta que você usa para codificar. A maioria das ferramentas transmitirá tudo o que chegar à saída, sem modificar a taxa de quadros (a menos que você solicite)
Does playback of a vfr video show ALL the frames or does it tend to skip frames
Depende do dispositivo. Por exemplo, se a sua TV for de 60 Hz e você codificar 61 fps, ela NÃO PODE exibir todos os quadros, mas se o conteúdo tiver uma média de 60 FPS, mas atingir 62, a TV pode espalhar o quadro uniformemente e exibi-los todos, ou pode cair dois quadros e depois repita 2 quadros. Cada exibição é diferente e não há regra sobre o que deve ser feito.
Why do video editors not 'all' support non-integer fps values?
Você precisará perguntar ao criador dessas ferramentas. Não há outra razão além da preguiça, do custo ou da simplicidade que impeça tal recurso em qualquer ferramenta.
Para expandir o ponto de simplicidade, em muitos casos a taxa de quadros solicitada pelo usuário simplesmente não é possível. Por exemplo, RTMP usa clock de 1 khz, o que significa que mesmo CFR de 30 fps não é possível (30 não se divide igualmente em 1000, torna-se AFR de 30 fps com dois terços dos quadros tendo 33 ms de duração e um terço com 34 ms de duração). o usuário pode digitar qualquer valor que desejar para a taxa de quadros, muitas vezes acabará com um resultado que não esperava devido à limitação do formato de vídeo que escolheu.
telling me and everyone that 59.94 is the same as 60
Não é absolutamente a mesma coisa. Na maioria dos casos, isso não importa. E para vídeo na Internet, isso nunca importará, mas para alguns fluxos de trabalho de transmissão de TV, as taxas de quadros geralmente devem ser exatas para que os diferentes equipamentos funcionem juntos.
Is the fps value of a vfr just the average fps across the entire video?
Não existe um padrão sobre como calcular a taxa de quadros média. O software acabou de ler um valor do cabeçalho, pode calcular a média dos primeiros segundos ou pode calcular a taxa de quadros de todo o arquivo. Cada ferramenta funciona de maneira diferente.
What is even the role of having a singular listed 'average' fps in a vfr video?
conivência.
is there some kind of special data packet that tells the video player to playback the video in a certain way such that some parts are faster/slower in the desired fashion?
Não, cada quadro tem um carimbo de data/hora associado. O player apenas exibe um quadro até a hora de exibir o próximo quadro. Ele acelera e desacelera em cada quadro.
Can't vfr technically mean the start of a video plays at 60 fps and the last 10 seconds play at 5 fps?
Sim
How would a video player know to play the start at 60 fps...and the end at 5fps...if it only has 1 number to go off of.
Não tem 1 número para sair. Possui 1 número por quadro.