Почему в FFmpeg с libx265 параметр tbn timestamp всегда равен 1k, даже если это кажется нелогичным?

Я кодирую с помощью ffmpeg и заметил, что когда я кодирую видео y4m со скоростью 29,97 кадров в секунду в видео h265 с помощью libx265, параметры двух видео следующие:

оригинальный год 4м:

      29.97 fps, tbc : 29.97 tbr 29.97 **tbn : 29.97**

Преобразованный файл H265:

      29.97 fps, tbc : 29.97 tbr 29.97 **tbn : 1k**

Я заметил проблему, когда пытался сравнить два видео с такими метриками, как VMAF или SSIM, там говорилось, что временные метки равны 30000/1001 в одном случае и другое в другом случае, и результат метрики явно ложный.

Точное сообщение, когда я звоню с помощью SSIM:«Между первым вводом: 100/2997 и вторым вводом 1001/30000 не найдено совпадение временной развертки, результаты могут быть неверными!»

Где первый вход — H265, а второй — y4m.

Насколько я понимаю, tbn означает внутренний интервал времени, используемый кодеком для размещения изображений, и это должно быть число, которое может помочь легко получить FPS, но я не вижу, как 1k каким-либо образом поможет разместить изображения с точностью 29,97 кадров в секунду (30000/1001). Или я что-то упускаю? В сети кажется, что классическое число — это более или менее что-то вроде 90 тысяч, что кажется более логичным.


Мой главный вопрос:здесь простое преобразование с параметрами по умолчанию, почему в этом случае используется этот параметр по умолчанию?

Вспомогательные вопросы:

  • Я предполагаю, что во время преобразования можно принудительно изменить tbn на другой фактор, но будет ли это бесплатно или повлияет ли это на качество или размер сжатого видео?

  • Почему в 4м году tbn — это просто FPS (29,97), что это значит?

0 ответов

Другие вопросы по тегам