Кажется, что нет никакого объяснения в Интернете относительно того, что это такое. Люди много говорят о них. Я просто хочу знать, что это такое и почему они значительны. Используя -video_track_timescale, как бы определить число для него? Это случайно? Должно быть 0?
Что такое временная шкала видео, временная база или временная метка в ffmpeg?
Ответ 1
Современные контейнеры управляют временной составляющей представления видео (и аудио) кадров с использованием временных меток, а не частоты кадров. Таким образом, вместо записи видео как 25 кадров в секунду и, следовательно, подразумевая, что каждый кадр должен быть выделен на 0,04 секунды, они сохраняют метку времени для каждого кадра, например.
Frame pts_time
0 0.00
1 0.04
2 0.08
3 0.12
...
Для точного разрешения этих временных значений используется временная база, то есть единица времени, которая представляет собой один такт часов. Таким образом, временная база 1/75
составляет 1/75 секунды. Значения P resentation T ime S затем обозначаются в терминах этой временной базы. Временной интервал - это просто обратная сторона. FFmpeg показывает временную шкалу как значение tbn
при считывании потока.
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
...
Этот метод регулирования времени позволяет передавать видео с переменной частотой кадров.