web-dev-qa-db-fra.com

Qu'est-ce que l'échelle de temps vidéo, la base de temps ou l'horodatage dans ffmpeg?

Il ne semble pas y avoir d'explication en ligne sur ce que c'est. Les gens en parlent beaucoup. Je veux juste savoir ce qu'ils sont et pourquoi ils sont importants. En utilisant -video_track_timescale, comment pourrais-je en déterminer un nombre? Est-ce aléatoire? Doit-il être 0?

28
Please Help

Les conteneurs modernes régissent la composante temporelle de la présentation des images vidéo (et audio) à l'aide d'horodatages, plutôt que de la fréquence d'images. Ainsi, au lieu d'enregistrer une vidéo à 25 ips, ce qui implique que chaque image doit être dessinée à 0,04 seconde d'intervalle, ils stockent un horodatage pour chaque image, par exemple.

 Frame      pts_time
   0          0.00
   1          0.04
   2          0.08
   3          0.12
   ...

Dans un souci de résolution précise de ces valeurs de temps, une base de temps est utilisée, c'est-à-dire une unité de temps qui représente, pour ainsi dire, un tick d'une horloge. Donc, une base de temps de 1/75 représente 1/75e de seconde. La P ressentiment T ime S les tampons sont alors libellés en fonction de cette base de temps. L'échelle de temps est simplement l'inverse de la base de temps. FFmpeg affiche l'échelle de temps comme la valeur tbn dans la lecture d'un flux.

Timebase = 1/75; Timescale = 75
 Frame        pts           pts_time
   0          0          0 x 1/75 = 0.00
   1          3          3 x 1/75 = 0.04 
   2          6          6 x 1/75 = 0.08
   3          9          9 x 1/75 = 0.12
   ...

Cette méthode de régulation du temps permet une vidéo à fréquence d'images variable.

62
Gyan