Як YouTube кодує мої завантаження та який кодек потрібно використовувати для завантаження?


25

Пов’язано з тим, які кодеки / формати підходять для повного запису відео на youtube? Мені цікаво, як я можу очікувати, що Youtube обробляє мої відео. Я знаю, що у них досить ревний настрій, який створює кілька копій мого завантаження з різною роздільною здатністю; 1080p, 720p та 480p і, мабуть, мобільний.

Які кодеки вони використовують? Як виробник у мене є можливість завантажити файл у форматі MP4; однак зауважу, сторонній завантажувач (який є надзвичайно тінистим і шаленим) зводить файли як FLV. Мені в основному цікаво, чи не буде мій кодек збережений або перезаписаний H.264 або тим, що вони використовують. Враховуючи їх дивовижну сумісність на різних пристроях, я припускаю, що вони використовують або дуже поширений стандарт, або кілька кодеків для кожного відео.

Отже, від якого кодека я можу очікувати виведення моїх відео, і якщо це залежить, від чого це залежить? Чи варто налаштувати власне кодування так, щоб "грати добре" з кодеком Youtube, чи це має значення, якісно? Я знаю, що можу кинути майже все на Youtube, і це займе, тому я в основному переймаюся якістю відео.


ось інструмент для перегляду доступних форматів для відео: h3xed.com/web-and-internet/…
akostadinov

Відповіді:


31

Деякі загальні відомості про використовувані формати:

YouTube використовує 4 формати контейнера та 4 різні кодеки. Від популярності відео залежить те, які кодеки використовуються для вашого відео (див. Нижче, чому). Як правило, кожне завантажене відео буде закодовано в h.264 і буде змішано у контейнер .flv та .mp4. Це стандарт, і це відбудеться для кожного відео. Хоча .flv буде використовуватися лише для роздільної здатності нижче 720p. Значить, лише 360p та 480p існуватимуть у контейнері .flv. Хоча для кожного відео нижче 720p також буде доступна версія mp4. Для 240p YouTube також використовує 3gp, що є досить старим кодеком (заснований на MPEG-4, частина 2 (не плутати з MPEG4, частина 10, як h.264), призначений для мобільних пристроїв (задовго до епохи смартфона), він приходить у контейнер .3gpp.

Інший використовуваний кодек - це VP8, який надходить у форматі контейнерів WebM. WebM - це формат, розроблений Google і мався на увазі як стандартний відеокодек для HTML5, підтримка його на сьогоднішній день є досить хорошою у більшості сучасних браузерів. WebM був представлений з версією HTML5 YouTube. YouTube кодує лише деякі відео в WebM після того, як вони завантажуються, і в основному це лише популярні відео (проходячи за тими відео, які я бачив, закодовані в WebM), тому невідомо, що ваше відео буде присутнє в WebM. Хоча це змінюється, коли WebM отримує ще трохи підтримки.

На даний момент YouTube також підтримує VP9 у WebM, але поки що лише chrome підтримує цей кодек (станом на 06/2015). З VP9 вони також представили підтримку аудіо кодека Opus (крім AAC, який використовується у всіх інших контейнерах).

Що стосується вашого пов’язаного питання (можливо, їх слід об'єднати?)

Який кодек / контейнер слід використовувати для завантаження?

Це залежить, якщо ви обмежені / стурбовані швидкістю завантаження, тоді використовуйте h.264 рівень 3.1 / 4.1 з головним профілем для SD або високим профілем для HD. YouTube прийме це просто чудово, і це буде добре виглядати після того, як він буде закодований серверами YouTube. Зазвичай я рекомендую бітрейт ~ 4-5 Мбіт / с для матеріалу 720p і ~ 8-9 Мбіт / с для 1080p. За 4 к ходіть за ~ 15 Мбіт / с. Зазвичай це хороший баланс між розміром і якістю. Якщо ви хочете кращої якості, перейдіть з більш високим бітрейтом, а якщо ви хочете менше відео, перейдіть з нижчим бітрейтом.

Але майте на увазі, що YouTube завжди буде кодувати ваше відео після його завантаження, не має значення, який кодек та налаштування ви використовуєте. Тож якщо ви хочете, щоб теоретично найкраща якість ваших завантажень була, виберіть кодек без втрат для завантаження або принаймні візуально без втрат. Розгляньте YouTube як остаточний вихід у форматі доставки / споживача, а завантаження на YouTube - останній крок у виробництві, і під час виробництва ви хочете залишатися без втрат. Але зауважте, це все лише теоретична річ, практично я б сказав, що це насправді не має значення, оскільки ми говоримо про YouTube, а не про телевізійне мовлення чи кіно.

Але якщо ви дійсно хочете зробити це "ідеальним" способом, використовуйте виробничий кодек, а не споживчий кодек, як h.264. MJPEG був би хорошим кодеком для цього, YouTube, безумовно, підтримує це в контейнері .avi або .mov. MJPEG - це кодек з втратою, але якість візуалу буде такою ж, як і джерела (якщо ви вибрали досить якісну настройку, це практично JPEG як відеокодек). На мою думку, перехід на справжній кодек без втрат буде марною витратою місця на жорсткому диску та пропускної здатності.

Але якщо ви хочете завантажити своє відео по-справжньому без втрат і не турбуватися про час завантаження, рекомендую використовувати стандартний кодек QuickTime, оскільки вони повинні майже підтримуватися YouTube (зауважте, що не всі вони без втрат, h264 - це також стандартний кодек QuickTime). На жаль, YouTube не заявляє, які кодеки QuickTime підтримуються, на жаль. Я думаю, що анімація чи JPEG2000 повинні працювати. Обидва кодеки можуть бути на 100% без втрат.

Що стосується частоти кадрів, якщо ви можете вибрати, тоді використовуйте 25FPS (на сьогодні YouTube також підтримує відео 50 та 60 кадрів в секунду, так що, ймовірно, також 30 кадрів в секунду) під час запису / анімації, YouTube подобається, що найбільше (частота кадрів, яка використовується для кожного відео), але якщо ваші кадри надходять уже в іншій частоті кадрів, тоді дотримуйтесь цього і не інтерполюйте вгору чи вниз. YouTube обробляє конверсію за вас і зазвичай робить це краще, ніж ваш кодер. Їм доводиться щодня стикатися з усілякими рамками і вирішувати це (насправді дуже складне) питання дуже добре.

Аудіо:

Для аудіо використовуйте PCM, якщо ви хочете залишатися без втрат і зі звуком, але знову ж таки це просто теоретичне поліпшення якості. AAC, як правило, виконуватиме таку саму якість роботи мудро (суб'єктивно) і буде меншою. Я рекомендую бітрейт не менше 192 кбіт / с для AAC. Ефект розміру, як правило, не такий великий, як відеокодек, тому ви також можете просто використовувати 320 кбіт / с. YouTube перетворить аудіо в ~ 24 кбіт / с (Mobile aka 3gp) ~ 64kbps (240p), ~ 128kbps (360p / 480p) та ~ 192kbps (720p +) за допомогою кодека AAC та Opus (лише для WebM).


3
Я згоден на цю відповідь. Але є практичний обмеження: швидкість завантаження. Скільки часу ви надаєте для завантаження? Цілі вихідні, ніч або пару годин до кінця робочого дня. Я сам поставив обмеження в 2 Гб на 10 хвилин відео, на що в моєму випадку потрібно близько 4 годин часу для завантаження. Але чи насправді це обмежує якість? Моє відео в 2 ГБ має швидкість передачі даних 30 Мбіт / с, що YouTube перетворює на 3 Мбіт / с. Кодування без втрат збільшило б час завантаження, але вихід YouTube все одно складе 3 Мбіт / с. Будь ласка, встановіть свої особисті обмеження самостійно.
Fred42vid

Звичайно, саме тому я зробив це (сподіваюся) цілком зрозумілим, що його теоретичний і жодним чином практичний. H.264 рекомендується застосовувати майже у всіх випадках. Єдиний фактичний практичний приклад для MJPEG, про який я можу придуматись, - це коли окантування кольорів з першим кодером h.264, який погіршиться з другим кодуванням з YouTube.
PTS

1
Youtube підтримує високий профіль h.264, тому вам слід користуватися ним завжди. Основний профіль для вмісту SD - дурний. Вихід 8x8dct - це завжди погана ідея. У x264, включення 8x8dct - це найефективніший компроміс часу процесора для кращої якості на розмір файлу (aka rate: distortion або RD).
Пітер Кордес

2
H.264 буде виглядати набагато краще на тому ж бітрейті, ніж MJPEG. Якщо ви хочете кращої якості, просто підключіть бітрейт (або налаштування якості в постійній якості замість цільового бітрейта). Ви можете пройти шлях до h.264 без втрат, якщо ви не заперечуєте над завантаженням величезного файлу. Він, ймовірно, буде меншим, ніж j2k без втрат. І те, і інше - ідеальна якість, оскільки це означає без втрат.
Пітер Кордес

1
Для аудіо IDK, якщо youtube підтримує FLAC чи ні. Якщо так, то це був би ваш вибір на вибір без втрат. Інакше так, високий бітрейт AAC зроблений з хорошим кодером. ( -c:a libfdk-aac, не за замовчуванням faacабо вбудовані aacкодери у ffmpeg.)
Пітер Кордес

5

Який формат виводить на відео YT, залежить від різних факторів. Для більшості звичайних відео вони використовують кодовані H264 потоки для відео (AAC або MP3 для аудіо) у вигляді файлів з контейнерами MP4 та FLV.

Це просто контейнери, що містять кодовані відеодані - хоча формат, кодований H264, не гарантує FLV-файлів (або теоретично з файлами MP4), оскільки вони також можуть містити Sorenson Spark, On2 VP6 та інші (особливо це стосується старих відео) ).

FLV використовуються, оскільки вони гарантовано зможуть відтворюватися з Flash-програвачем.

Насправді не визначається формат завантажувального програмного забезпечення - вони просто завантажують те, що доступно, використовуючи itag"внутрішню" URL-адресу відео (а не ту, що знаходиться в браузері), щоб визначити параметри. Якщо вони необов'язково конвертують відео, це буде функцією, але не пов'язаною з форматами YT.

Окрім таких, як 3GP, WEBM, а також для 3D-фільмів є також інші формати. Деякі націлені на телефони та новий стандарт Html5 (реалізований як ми говоримо), який може відтворювати відео безпосередньо з html (тобто без flash-програвача).

Але повернемося до найпоширеніших форматів: якісно-якісно, ​​це насправді не має значення. Якщо FLV містить H264, ви можете відтворити це так само добре, як і контейнерний файл MP4 за допомогою VLC-плеєра f.ex VideoLAN . Якщо FLV не містить H264, і ви хочете його як MP4-контейнер з H264, вам потрібно буде його перекодувати, що означає, що ви втратите якість.

Оскільки YT, здається, вважає за краще H264, я б запропонував завантажувати і в цьому форматі (дивіться їх інформацію про розміри та бітрейти, щоб уникнути перекодування для найкращої роздільної здатності).



0

Ваше запитання "Як YouTube кодує мої завантаження та який кодек я повинен використовувати для завантаження?".

Я заглиблюючись у ваше запитання, я бачу: "Чи варто налаштувати власне кодування на" гарненьке відтворення "з кодеком Youtube, чи це важливо, якісно? Я знаю, що я можу кинути майже все на Youtube, і це займе, так Я здебільшого переймаюся якістю відео. "

Відповідь: YouTube використовує Lavf57.25.100 для кодування нових відео, тоді як відеоролики старше кількох років кодуються фірмовим кодером (у ньому не вбудований "Lavf57.25.100"), але замість цього є таке речення: "Файл IsoMedia вироблений від Google, 5-11-2011 "). Старі відеоролики не були перекодовані під час зміни алгоритму.

Прийнятно використовувати багато різних кодеків, рекомендовані YouTube H.264 - дивіться тут: https://support.google.com/youtube/answer/1722171?hl=uk .

Чомусь ви вирішите не запитувати про контейнер (це не те саме, що кодек). Ви також припускаєте, що 1080P буде доступний, і не запитайте про найважливіше - Бит (з подальшим Дозволом).

Якщо ви завантажуєте відео з роздільною здатністю 1080P із частотою 60 кадрів в секунду, максимальна доступна роздільна здатність - 720P (при 60 FPS, на мобільному пристрої, здатна до 1080P), завантаження відео 1080P із частотою 29,97 FPS дозволяє переглядати 1080P на мобільному пристрої.

Що важливо, це біт і дозвіл, якщо "якість" - ваша мета. Ви не можете підвищити масштаби чи використовувати без втрат, щоб обдурити, оскільки YouTube виконує "Тест на стиснення", щоб визначити, наскільки вони можуть розчавити ваше відео з мінімальним погіршенням - завантажуйте кашку, і це буде сильно стиснута кашка, завантажте високу роздільну здатність і високий бит, а потім YouTube повернеться до дроблення та забезпечить набагато кращий досвід перегляду.

Дивіться: https://support.google.com/youtube/answer/1722171?hl=uk .

Зауважте, що різні резолюції та "очікування якості". Для 4K відео з низькими очікуваннями ви можете завантажувати відео, які мають бит 35-45 Мбіт, але якщо ви "продюсер", а якість - ваша мета, вам потрібно як більш високий кадр, так і використовувати принаймні 66-85 Мбіт / с для Камера бітрейт (перед тим, як стискати її дуже м'яко).

Якщо ви збільшите масштаб відео з низькою роздільною здатністю та використовуєте нестиснений кодек, сподіваючись отримати найкращу можливу якість, ви потрапите (і зведете до кашки).

Запишіть за допомогою камери якості виробництва, високої частоти кадрів та відеозаписів, дуже м'яко стиснуте (Ffmpeg Q = <10), щоб отримати найкращі результати - "Кодек" (ваші слова) не є єдиним визначальним фактором (хоча я б радив проти старий).

Ffmpeg підтримує .MP4 контейнери та H.264 Codec, тому використовуйте ці.

Люди часто скаржаться на те, що YouTube руйнує їхні відео. Проблема полягає в тому, що вони не завантажували достатньо високої якості, в першу чергу, щоб «вимкнути перемикач» і змусити компресора YouTube м'яко ступати під час завантаження. Відображення пікселів із ідеальним відео можливе. Діє правило GIGO.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.