Відео та кодеки
Майже все заплутане у відеофайлах походить з однієї відмінності — між коробкою і тим, що в ній лежить. Тут зібрані слова і для того, і для іншого, а також для операцій, що переміщують вміст між ними.
-
Контейнер
обгортка, формат -
Файлова структура, яка містить доріжки відео, аудіо та субтитрів разом і описує, де кожна з них знаходиться. MP4, MKV, AVI і WebM є контейнерами. Контейнер нічого не стискає.
Уяви його як архівну коробку з етикеткою вмісту. Коробка каже: тут відеодоріжка, закодована так-то; там дві аудіодоріжки цими мовами; субтитри з таким-то зсувом. Вона не має жодної думки про те, як щось із цього стиснули.
Саме тому те саме відео може існувати в MP4 і в MKV з ідентичною якістю картинки й ідентичним розміром файлу, і саме тому один із цих двох відкривається на iPhone, а інший — ні. Різниця в коробці, а не у вмісті.
Дивись також: КодекРемультиплексування
-
Кодек
кодер-декодер -
Метод, який використовується для стиснення відео- чи аудіопотоку та його повторного розпакування для відтворення. H.264, HEVC, AV1, AAC і MP3 є кодеками. Кодек – це не формат файлу.
Назва — це скорочення від «кодер-декодер». Кодування відкидає деталі так, щоб це було важко помітити, а декодування відновлює наближення до оригіналу з того, що залишилося. Що кращий кодек, то менш помітні втрати за заданого розміру.
Пристрій відтворює файл, коли вміє читати контейнер *і* декодувати кожен кодек усередині нього. Потрібні обидві половини, і коли файл відкривається, але нічого не показує, підвела саме друга половина.
Дивись також: КонтейнерАпаратне декодування
-
H.264
AVC, MPEG-4 Частина 10 -
Відеокодек, який може декодувати все. Опублікований у 2003 році, досі найбезпечніший вибір для сумісності та апаратно прискорений на кожному телефоні, комп’ютері та телевізорі, виробленому за останні п’ятнадцять років.
H.264 переміг настільки переконливо, що питання «чи зіграє це всюди» і «чи це H.264» майже збігаються. Це не найефективніший із доступних кодеків — і HEVC, і AV1 роблять більше меншою кількістю бітів, — але за широтою підтримки з ним ніхто поруч не стояв.
У нього є профілі, і один із них створює проблеми на пристроях Apple: High 10, часто записуваний як Hi10P, кодує десять бітів на колірний канал замість восьми. Апаратні декодери працюють лише з 8 бітами, тому файл Hi10P на пристрої без програмного резерву відтворює звук узагалі без картинки.
Дивись також: HEVCАпаратне декодування10-бітний
-
HEVC
H.265 -
Наступник H.264, приблизно вдвічі менший за таку ж якість. Кожен пристрій Apple, починаючи з 2015 року, декодує його апаратно, і це те, у що записує iPhone.
Саме HEVC зробив 4K практичним на телефонах: та сама картинка приблизно за вдвічі меншого бітрейту. Apple прийняла його рано й повністю, тому на залізі Apple це такий же безпечний вибір, як і H.264.
В іншому світі все складніше. Патентне ліцензування навколо HEVC було настільки спірним, що веб-браузери не поспішали додавати його підтримку, — саме цю прогалину і був створений заповнити AV1.
-
AV1
-
Безкоштовний кодек, опублікований у 2018 році, ефективніший за HEVC і, на відміну від нього, без ліцензійних суперечок. Апаратне декодування надійшло лише на пристрої Apple з iPhone 15 Pro.
AV1 існує, бо ліцензування HEVC змусило найбільші стримінгові компанії й виробників веб-браузерів захотіти альтернативу, яку можна поширювати, нікому не платячи. Сьогодні саме в цьому форматі доставляється значна частина вебвідео.
Заковика в ціні декодування. Без апаратної підтримки AV1 декодується програмно, що можливо, але помітно витрачає батарею і може заїкатися на високих роздільностях. На старіших пристроях версія того самого відео в H.264 буде кращим файлом.
Дивись також: HEVCАпаратне декодування
-
Бітрейт
-
Скільки даних використовує одна секунда відео чи аудіо, зазвичай у мегабітах на секунду. Це головне, що визначає як розмір файлу, так і те, скільки пристрій повинен працювати.
Увага дістається роздільності, але те, як файл насправді виглядає, вирішує бітрейт. Файл 4K із низьким бітрейтом виглядає гірше, ніж файл 1080p із високим, бо кодувальнику довелося відкинути більше, щоб вкластися в цільовий розмір.
Саме бітрейт зазвичай і стоїть за файлом, що заїкається. Коли відео нормально грає на комп’ютері й заїкається на телефоні, з файлом усе гаразд: він просто вимагає більше роботи з декодування за секунду, ніж готовий виконати цей чіп.
Дивись також: КодекАдаптивний бітрейт
-
Ремультиплексування
перепакування, remux -
Перенесення наявних відео- та аудіопотоків з одного контейнера в інший без їх повторного кодування. Без втрат і достатньо швидко, щоб упиратися у швидкість диска, а не процесора.
Ремультиплексування копіює потоки, не торкаючись жодного кадру. Годинний MKV із H.264 та AAC перетворюється на MP4 за секунди, побітово ідентичний за картинкою і звуком.
Це працює лише тоді, коли цільовий контейнер приймає те, що несе вихідний, — MP4 прийме H.264 і AAC, але не прийме VP9 чи Vorbis. Коли кажуть, що конвертація пройшла «миттєво», насправді виконали ремультиплексування. Коли це зайняло годину, щось перекодували заново.
Дивись також: ТранскодуванняКонтейнер
-
Транскодування
перекодування, конвертація -
Декодування потоку та його повторне кодування, зазвичай в інший кодек або з меншим бітрейтом. Повільно і щоразу з втратами — якість назад уже не повернути.
Саме це люди мають на увазі під «конвертацією відео», і це справді витратна операція: кожен кадр декодується, обробляється і стискається знову. Це правильна відповідь, коли кодек справді не підтримується або файл треба зробити меншим.
Це неправильна відповідь на «мій телефон це не відкриває», якщо вистачило б ремультиплексування, і це слабка відповідь для файлу, у якого єдина проблема — аудіодоріжка в DTS: заміна лише цієї доріжки залишає картинку недоторканою.
Дивись також: РемультиплексуванняБітрейт
-
Апаратне декодування
-
Декодування відео на спеціальному чіпі, а не на головному процесорі. Набагато швидший, набагато холодніший і набагато бережливіший до акумулятора — але він працює лише з тими кодеками, для яких був створений.
Кожен телефон несе відеодекодер із фіксованою функцією, що вкрай ефективно справляється з H.264 і HEVC. Усе, чого він не підтримує, падає на програмне декодування, яке працює, але витрачає батарею, виділяє тепло і може не встигати на високих роздільностях.
Саме тому підтримка формату на телефоні — це не просте «так» чи «ні». Один і той самий пристрій може бездоганно програмно відтворювати кодек на 1080p і заїкатися на тому самому кодеку в 4K, і жоден із цих результатів не каже про те, що файл пошкоджений.
-
10-бітний
Hi10P, High 10 -
Відео зберігає десять біт на колірний канал замість восьми для плавніших градієнтів. У HEVC це нормально і добре підтримується; у H.264 це найпоширеніша причина того, що файл має звук, але не має зображення на iPhone.
Більше бітів на канал означає тонші сходинки між відтінками, що прибирає смуги, помітні на темному небі й у повільних затемненнях. Для HDR це вимога, а не вишуканість.
Проблема саме в H.264. 10-бітний H.264 виходить за межі того, що реалізують апаратні декодери, а системний плеєр Apple не має для нього програмного шляху, тому звук грає, а картинка так і не з’являється. Аніме-релізи активно використовують цей формат, тому проблема трапляється значно частіше, ніж можна було б подумати з його загальної частки.
Дивись також: H.264Апаратне декодування
-
Ключовий кадр
I-кадр -
Кадр, що зберігається повністю, а не як відмінність від попереднього кадру. Перемотка може потрапити лише на такий кадр, тому відео іноді перескакує на трохи інший момент, ніж ти просив.
Стиснення відео працює, описуючи більшість кадрів як зміни відносно сусідніх. Лише ключові кадри існують самостійно, і зазвичай вони з’являються кожні дві-десять секунд.
Коли ти тягнеш смугу перемотування, плеєр знаходить найближчий ключовий кадр і починає з нього. Рідше розташовані ключові кадри роблять файл меншим, а перемотку — грубішою; цей компроміс визначається під час кодування і не може бути змінений пізніше без перекодування.
Дивись також: ТранскодуванняСегмент