Как правильно оценить размер видео mp4 H.264? - PullRequest
0 голосов
/ 05 июня 2018

По сути, размер видео рассчитывается:

Video Size per Second (bps)
=
Frame Rate (fps)
* Horizontal Pixels
* Vertical Pixels
* Bit Depth (bit)
/ Compression Ratio by Codec

Как я где-то читал, коэффициент сжатия большого пальца видео mp4 равен 50. Так что для цветного видео 24pps 720p 24 кадра в секунду (без учета размера аудио длясейчас), размер файла вычисляется следующим образом:

24(fps) * 1280 * 720 * 24(bit) / 50
= 10616832 (bps) = 10.125 (Mbps)

Если вы рассчитаете размер видео за 1 час с указанной выше скоростью передачи, вы получите:

10.125(Mbps) * 3600(s) / 8(bit per Byte) / 1024(MB per GB)  = 4.449GB

... который не кажется правильным вообще.Из ежедневного опыта мы знаем, что 720p H.264 mp4 продолжительностью 1 час, вероятно, составляет около 1 ГБ или меньше.Разница почти в 5 раз.

Я знаю, что эта формула не включает интервал ключевого кадра для расчета, что, как я прочитал, имеет большое значение.Я также знаю, что степень сжатия здесь только практическое правило.Также могут быть факторы, которые я не принял во внимание.Проблема в том, что я понятия не имею, как вписаться в эти недостающие факторы.

Итак, есть ли другой способ более точной оценки размера видео?

1 Ответ

0 голосов
/ 05 июня 2018

Это намного, намного сложнее, чем ваша формула, и вам гораздо проще разобраться.

Кодеки имеют сотни параметров и внутренних ветвей.Там нет какого-то статического фактора, скажем, "50".Даже если вы хотите настроить конкретное качество, требуемая скорость передачи битов может немного отличаться в зависимости от содержимого, которое сжимается.Например, что-то не движущееся и с небольшим изменением яркости занимает гораздо меньшую полосу пропускания, чем детализированная динамическая сцена, снимаемая с движущегося транспортного средства.Степень сжатия сильно варьируется.

Вы можете настроить свой кодек для целевой скорости передачи данных.Ваш видео поток будет близок к этому битрейту.Это так просто.

Я могу сказать H.264, чтобы он предназначался для видео потока с постоянной скоростью 10 Мбит / с из видео 1920x1080, и он приложит все усилия, чтобы втиснуть все это туда.

Выупомянутый интервал ключевого кадра ... да, ключевой кадр занимает большую часть полосы пропускания в видеопотоке.Таким образом, вы хотите их разумно дальше друг от друга, когда это возможно.Ваша настройка здесь больше о выборе компромисса.Вы хотите, чтобы ваш поток выполнял повторную синхронизацию более регулярно (например, в широковещательной рассылке для поддержки быстрой смены канала или в сети для уменьшения задержки), или вы хотите сэкономить пропускную способность для видео более высокого качества из надежного места (такого как предварительнозаписанный файл).Ваше видео будет по-прежнему соответствовать желаемому битрейту, но слишком частая вставка ключевых кадров уменьшит пропускную способность, доступную для остальной части потока, что приведет к снижению качества.Если вы не уверены, просто позвольте кодеку решить, куда вставлять ключевые кадры.Стандартные настройки приемлемы для общего назначения и обычно лучше, чем угадывать настройки, с которыми вы не знакомы.

...