2014-12-11 2 views
3

Я создаю приложение, функциональность которого сосредоточена вокруг видеороликов продолжительностью 1-10 секунд. В настоящее время я записываю видео, используя PBJVision с предустановленным значением AVCaptureSessionPresetMedium. 10-секундное видео составляет ~ 3-5 МБ. Учитывая, что каждый пользователь теоретически может загружать сотни или даже тысячи видеороликов в день, мне было интересно, есть ли более эффективная пропускная способность для упаковки этих видео.Размеры и форматы видеофайлов iOS

Может ли WebM быть более подходящим форматом контейнера?

Я искал в Интернете, но не смог найти статей, относящихся к этому конкретному вопросу.

Edit: this looks promising

ответ

2

Современные видеокодеки (включая WebM VP8) обычно имеют коэффициент сжатия около 1/50. Регулируя параметры кодека, мы можем архивировать ~ 1/100 (IMHO), но очень сложное и ужасное качество изображения.

Грубо говоря, мы можем думать, что 1 пиксель камеры состоит из 1,5 байта (YUV 12 или 16 бит).
Если разрешение 720x480 и частота кадров 30/сек,

720 х 480 х 1,5 х 30 = 15552000
х 10 сек = 155520000
/50 = 3110400
~ = 3MB

Кажется, PBJVision делает хорошо.

Уменьшение разрешающей способности или снижение частоты кадров было бы первым соображением, я думаю.

+0

Спасибо за нарушение. – switz

0

ИОС обыкновение воспроизведения WebM, если не использовать программный декодер. Программный декодер будет потреблять больше CPU/аккумулятора и выделять больше тепла. И webm даже не решит вашу проблему. Вы хотите уменьшить битрейт, но это также снизит качество. Так что это компромисс.