FixMyVideos

O vídeo é reproduzido demasiado rápido ou demasiado lento — Taxa de fotogramas incorreta

O vídeo abre. O áudio está lá. Mas parece estar errado — a reproduzir demasiado rápido, demasiado lento ou com cortes. Normalmente, uma incompatibilidade da taxa de fotogramas.

O que está a acontecer

Um ficheiro de vídeo declara a sua taxa de fotogramas em dois lugares: por faixa em 'mvhd' e 'mdhd' (escala de tempo e duração) e implicitamente através das durações de fotogramas na tabela 'stts'. Se estes não coincidirem, ou se a recuperação escreveu os valores errados, o reprodutor divide o tempo incorretamente e o vídeo aparece na velocidade errada.

Padrões comuns:

Padrão 1: meia velocidade ou velocidade dupla

O ficheiro gravado é de 60 fps, mas é reproduzido a 30 fps (parece em câmara lenta) ou vice-versa. Quase sempre uma taxa de fotogramas mal lida no momento da recuperação. Os fotogramas estão corretos; apenas os metadados de tempo estão errados.

Padrão 2: aparência de movimento irregular / quadros perdidos

O vídeo parece estar a reproduzir um fotograma sim, outro não. Muitas vezes, uma incompatibilidade de taxa de fotogramas em que o reprodutor está definido para 30 fps, mas o ficheiro é variável ou de 60 fps, pelo que os fotogramas são efetivamente perdidos durante a exibição.

Padrão 3: o vídeo é reproduzido corretamente, mas é exportado a uma velocidade errada

Importa para o Premiere / Resolve, a linha do tempo é reproduzida normalmente, mas a exportação sai rápida ou lenta. As definições do projeto (taxa de fotogramas da linha do tempo) não correspondem à taxa de fotogramas do clipe e a conformidade está incorreta.

Padrão 4: problemas de taxa de fotogramas variável (VFR)

O iPhone e muitos telemóveis gravam em VFR — os intervalos reais entre fotogramas variam ligeiramente. Os NLE convertem para taxa de fotogramas constante (CFR) na importação, por vezes incorretamente. Resultado: desvio de tempo na gravação.

Como descobrir qual

ffprobe -v error -show_streams broken.mov | grep -E "r_frame_rate|avg_frame_rate|time_base|nb_frames|duration"

Obterá algo como:

r_frame_rate=60/1
avg_frame_rate=60/1
time_base=1/60000
duration=120.500000
nb_frames=7230

Verificação matemática: 'nb_frames / duration ≈ avg_frame_rate'. Se isso não se verificar aproximadamente, os metadados de tempo são inconsistentes.

Se 'r_frame_rate' e 'avg_frame_rate' diferirem significativamente → VFR (padrão 4).

Se 'nb_frames * (1/r_frame_rate) ≠ duration' → duração incorreta ou metadados de taxa de fotogramas incorretos.

O que fazer

Padrão 1 — taxa de fotogramas incorreta

Re-multiplexe com a taxa de fotogramas correta forçada:

ffmpeg -i broken.mov -c copy -video_track_timescale 60000 -r 60 fixed.mov

Substitua '60' pela taxa de fotogramas real. Se não souber o que a câmara estava a gravar: verifique o menu da câmara ou conte o movimento visível no ficheiro (se uma filmagem panorâmica claramente a 60 fps parecer em câmara lenta, está a ser reproduzida a 30; force 60).

Padrão 2 — reprodução irregular

Muitas vezes, é um problema do reprodutor e não do ficheiro. Experimente o VLC ou o Resolve. Se estes forem reproduzidos sem problemas, o ficheiro está bom e o problema é o seu reprodutor original.

Se até o VLC tiver cortes: o tempo de fotogramas do ficheiro tem lacunas. Re-multiplexe com regeneração de carimbo de data/hora:

ffmpeg -i broken.mov -fflags +genpts -c copy fixed.mov

Padrão 3 — incompatibilidade da taxa de fotogramas do projeto

Defina a taxa de fotogramas da sua linha do tempo para corresponder ao clipe. No Premiere: Nova sequência → Definições → Base de tempo. No Resolve: Definições do projeto → Definições principais → Taxa de fotogramas da linha do tempo.

Se tiver de usar uma taxa de linha do tempo diferente, a ferramenta "interpretar filmagem" do seu NLE pode substituir a taxa indicada do clipe sem afetar outros clipes.

Padrão 4 — Desvio de VFR

Converter para CFR com FFmpeg:

ffmpeg -i variable_frame_rate.mov -vsync cfr -r 30 -c:a copy constant_frame_rate.mp4

'-r 30' é o CFR de destino; escolha para corresponder à taxa dominante na origem.

Como a nossa recuperação lida com a deteção da taxa de fotogramas

O pipeline de recuperação deteta a taxa de fotogramas de duas maneiras:

  • A partir dos parâmetros do codec. Os cabeçalhos de fotogramas H.264 SPS, H.265 SPS e ProRes contêm todos informações sobre a taxa de fotogramas. Extraímos essas informações do conjunto de parâmetros do primeiro fotograma válido.
  • A partir da distribuição de carimbos de data/hora. Quando os parâmetros do codec estão em falta ou danificados, derivamos a taxa de fotogramas do espaçamento entre os fotogramas detetados em "mdat" — o intervalo mediano de fotogramas torna-se a estimativa de fps.

Casos extremos:

  • Fontes VFR (filmagens de telemóvel): o ficheiro recuperado é CFR por predefinição à taxa de fotogramas mediana, com uma passagem de carimbo de data/hora por fotograma para que o tempo de reprodução corresponda ao original. Pode solicitar a saída VFR se o seu editor precisar.
  • Modos de câmara lenta (por exemplo, iPhone 240 fps): o ficheiro recuperado é reproduzido à taxa de reprodução pretendida da fonte (30 fps), o que faz com que a fonte de 240 fps seja reproduzida 8x em câmara lenta, conforme esperado.
  • Taxas mistas (raras, vistas apenas em gravações concatenadas): extraímos a taxa dominante e sinalizamos o caso para revisão manual.

O que deve fazer

Se um ficheiro recuperado de outro local for reproduzido a uma velocidade errada: experimente as correções do FFmpeg acima antes de recuperar novamente. Se isso não funcionar, carregue o ficheiro original danificado e faremos novamente com a deteção correta da taxa de fotogramas.

Se o ficheiro for nosso e a velocidade estiver errada: encaminhe o caso a partir da sua página de tarefas. Vamos regenerar com os fps corrigidos. Sem custos.

FAQ

A minha gravação em câmara lenta do iPhone é reproduzida à velocidade errada após a recuperação. Os modos de câmara lenta gravam a fps elevados (120, 240) e incorporam metadados de taxa de reprodução que dizem "reproduzir a 30". A recuperação, por vezes, perde esses metadados. Solução: em Fotos / FCP, define manualmente a taxa de reprodução; ou reexporta com '-r 30' para a velocidade de reprodução desejada.

A gravação de jogo/ecrã é reproduzida demasiado depressa no Premiere. Quase sempre incompatibilidade da taxa de fotogramas do projeto (padrão 3). Defina a linha do tempo para corresponder à taxa da origem.

O vídeo é reproduzido a uma velocidade errada apenas no YouTube após o carregamento. O YouTube transcodifica os carregamentos para uma taxa de fotogramas fixa (normalmente 29,97/59,94). Se o seu ficheiro for exatamente 30/60 com metadados fora das especificações, a interpretação do YouTube pode ser diferente. Pré-transcodifique para corresponder às expectativas do YouTube:

ffmpeg -i input.mov -r 30000/1001 -c:v libx264 -c:a copy youtube_friendly.mp4

As minhas filmagens estão seguras? Servidor em França, eliminadas automaticamente após 48 horas, nunca usadas para treinar nada ou partilhadas. Política de privacidade.

Relacionado

Carregue o seu ficheiro →

Pré-visualização gratuita · Sem compromisso

Pronto(a) para recuperar o seu vídeo?

Carregue o seu ficheiro. Obtenha uma pré-visualização gratuita de 5 segundos em cerca de um minuto. Pague apenas se a pré-visualização parecer correta.

Carregue o seu vídeo →