Ao codificar o vídeo, o primeiro quadro tem como um quadro-chave. Será o primeiro totalmente codificado e os quadros subsequentes poderão utilizá-lo para previsão inter-frames. Além disso, no início da sequência de vídeo codificada, você terá uma unidade de acesso H.264 que informa ao decodificador a atualização.
Portanto, independentemente do que você esteja fazendo: a menos que você apenas copie o fluxo de bits, você estará recodificando o vídeo e seu primeiro quadro terá que ser um quadro-chave.
Agora, por qualquer motivo, seu fluxo tem um deslocamento em sua hora de início. Isso significa que todos os timestamps de apresentação também são deslocados de acordo com esse deslocamento. Se você inspecionar a cabeça da saída ffprobe -show_frames
, verá que o quadro 0 será de fato um quadro-chave, mas com um PTS diferente.
Para compensar isso, você pode subtrair a hora de início de todos os PTS.