[Dp] Видео-аудио кодеки - lesson 04


Видео кодеки и медиаконтейнеры. Рекомендации по кодированию видео.

1. Кодер. Декодер. Кодек. Степень сжатия. Битрейт. Для сжатия цифровых мультимедиа файлов используется специальные программы – кодеки (кодерами). Это своеобразная «формула», которая определяет, каким образом можно упаковать видео и аудио контент. Кодеки выполняют и обратную операцию раскодирования, в этом случае их называют декодерами. Кодер (англ. coder, encoder) - программа и/или устройство, используемые для преобразования информации из одного вида в другой (кодирование). Декодер (англ. decoder) - по сути то же, что и кодер, но осуществляет преобразование в обратном направлении. Кодек (англ. codec) - кодер и декодер в одном блоке. Степень сжатия - отношение размера входного (не кодированного) файла к размеру выходного (кодированного) файла. Например, степень сжатия 11:1 означает, что закодированный файл в 12 раз меньше оригинала. Битрейт (англ. bitrate) - количество бит, отведенное для записи единицы времени аудио-информации. Измеряют обычно в кб/с, то есть килобит в секунду (англ. kb/s или kbps). Большинство кодеков для звуковых и визуальных данных используют сжатие с потерями, чтобы получать приемлемый размер готового (сжатого) файла. Существуют также кодеки, сжимающие без потерь (англ. lossless codecs). Но для большинства применений выгоднее кодеки с потерями информации, так как малозаметное ухудшение качества оправдывается значительным уменьшением объема данных. Почти единственное исключение — ситуация, когда данные будут подвергаться дальнейшей обработке: в этом случае повторяющиеся потери на кодировании/декодировании окажут серьезное влияние на качество. 2. Самые популярные кодеки. psd, bmp, rle, dib, gif, eps, jpg, pcx, raw, png, tif и др. - изображения. flag, ogg, opus, wav, pcm, wma, mp3, aac, as3, dts, flac и др. – аудио; ffdshow, indeo, mjpeg, mpeg-1, mpeg-2, mpeg-4(h.261, h.263, h.264), wmv - видео. Любая операционная система изначально содержит некий набор кодеков, но, как правило, их недостаточно для воспроизведения определенных форматов видеофайлов. Кодеки преобразуют данные в особый файл, который называют контейнером. Контейнер - это специальная оболочка, в которой хранится зашифрованная с помощью кодеков информация. По сути, медиаконтейнеры - это и есть форматы видеофайлов, которые содержат данные о своей внутренней структуре. В контейнере может храниться различная информация, в частности, изображения, аудио, видео и субтитры. Разные виды контейнеров определяют объем и качество информации, которая может быть в нем сохранена, но при этом не влияют на способы кодирования данных. Наиболее популярными являются следующие контейнеры: ogg, mp3, mka, wav, wma, mp3, aac, dts, flac и др. – аудио; DivX, XviD, AVI, MP4, MPEG, WMV, MOV, VOB, MKV, FLV, MPG, dv, flv, ts, m2ts, mp4 и др.  – видео. Для того, чтобы определить, в какой формат конвертировать видео, нужно исходить из поставленных задач. Представьте себе такую ситуацию: у вас есть красивый видео ролик из свадебных фотографий, и вы хотите воспроизвести его на экране телевизора (без HD). Для этого Вы можете записать видео в формате DVD (as3 – аудио, vob - видео). 3. Видео-контейнеры. (Форматы видеофайлов). AVI (Audio-Video Interleaved) - один из самых распространенных медиаконтейнеров для операционных система Windows. Этот формат может содержать в себе информацию четырех типов: видео, аудио, текст и midi. В этот контейнер может входить видео различных форматов от MPEG-1 до MPEG-4. AVI имеет большое количество разновидностей по внутренней структуре и может воспроизводиться на смартфонах, коммуникаторах и других устройствах. Медиаконтейнер AVI не накладывает никаких ограничений на тип используемого кодека. WMV (Windows Media Video) - цифровой видео формат, созданный и контролируемый компанией Microsoft. WMV файлы могут содержать аудио- и видео данные, упакованные с помощью кодеков Windows Media Audio (WMA) и Windows Media Video (WMV). MOV - этот формат разработан компанией Apple для QuickTime медиа плеера. Для воспроизведения подобных файлов необходимо иметь QuickTime плеер или плееры с уже установленными кодеками MOV. Формат может содержать видео, анимацию, графику, 3D. Данный формат поддерживает любые аудио- и видеокодеки. ASF (Advanced Streaming Format) - потоковый формат от Microsoft. Основан на MPEG-4 и используется для передачи видео с низким и средним битрейтом в Интернет. ASF представляет собой мультимедиа контейнер, поддерживающий практически все видеокодеки. MPG или MPEG (Moving Pictures Experts Group) - Видеофайл, в котором содержится видео, закодированный кодеками: mpeg1 - стандарт разработан в 1992 году с учетом возможностей 2-х скоростных CD-ROM и 486 компьютеров mpeg2 стандарт принят в 1994 году. Первично разрабатывался для цифровой передачи видео вещательного качества. Используется в DVD, цифровом TV и HDTV. mpeg3 - для телевидения высокой чёткости (HDTV), но позже стал частью стандарта mpeg2 и отдельно теперь не упоминается. mpeg4 (распространено краткое написание MP4) - стандарт рассчитан на очень низкие потоки данных для применения в видеотелефонах, мультимедийной электронной почте, электронных информационных изданиях и т. п. RealVideo формат, созданный компанией RealNetworks. RealVideo используется для живой телевизионной трансляции в Интернете. Например, телекомпания CNN одной из первых стала вещать в Сети. Обладает небольшим размером файла и самым низким качеством, зато вы, не особенно загружая свой канал связи, сможете посмотреть последний выпуск теленовостей на сайте выбранной вами телекомпании. Расширения RM, RA, RAM. DivX (Digital video express) - кодек стандарта mpeg4. С Версии 5 стал платным (для кодирования). Xvid (ранее XviD) - библиотека сжатия видео стандарта Mpeg4. Xvid является основным конкурентом кодека DivX Pro (Xvid это DivX наоборот). В противоположность кодеку DivX - проприетарному программному обеспечению, разработанному компанией DivX, Inc., Xvid это свободная программа, распространяемая под лицензией GNU General Public License. MP4 - это короткое написание стандарта Mpeg4, рассчитан на очень низкие потоки данных для применения в видеотелефонах, мультимедийной электронной почте, электронных информационных изданиях и т. п. 3gp (сокращение от англ. 3rd generation (mobile) phone - (мобильные) телефоны третьего поколения); видеофайлы для мобильных телефонов 3-го поколения. Некоторые современные мобильные телефоны (не обязательно 3G) имеют функции записи и просмотра аудио и видео в формате .3GP. Этот формат - упрощённая версия ISO 14496-1 Media Format, который похож на MOV, используемый QuickTime. Мы перечислили лишь самые основные форматы видеофайлов, которые используются на практике. При выборе того или иного формата, исходите из того, где этот файл будет воспроизводится, а для преобразования видео из одного формата в другой используйте видео конвертеры (я использую xMedia Recode). 4. Какой же формат выбрать? В какой формат конвертировать видео, чтобы выложить его на сайт В Контакте, в какой формат конвертировать видео, если оно имеет слишком большой размер и не помещается на диске, флешке и т.д. Прежде всего, нужно сказать, что изменение размеров видео файла неизбежно повлечет за собой определенное снижение качества. Однако, можно подобрать такие настройки, чтобы потеря качества была минимальной. Например, вы можете оставить видео в том же формате, но при этом изменить уровень битрейта или размеры кадра. С 2015 года начал внедряться формат super HD с разрешением экрана 3840х2160 пикселей, и соотношением сторон экрана 16х9. С 2014 самым распространенным форматом видео высокого разрешения является HD (Full HD), с разрешением экрана 1920х1080 пикселей, и соотношением сторон экрана 16х9. (Этот формат поддерживает большинство современных ЖК и плазменных телевизоров, но не все способны дать действительно качественную картинку. Дело в том, что большинство таких телевизоров имеют меньшее разрешение экрана, чем то, которое необходимо для полноценного просмотра HD, например, 1280х720. Формат HD имеет разновидности: 1080i и 1080p. Как и у других форматов буквы i и p обозначают чересстрочную или прогрессивную развертку изображения. Но, в отличие от привычных форматов PAL и NTSC, здесь при чересстрочной развёртке частота кадров равна 60, а при прогрессивной - 50 кадрам в секунду. Это стандарт, его можно придерживаться, но можно и обойти. Дело в том, что полноценный формат HD сегодня можно воспроизводить только на компьютере, специальных устройств (плееров) для его просмотра не существует (проигрыватели дисков HD DVD (постепенно умирает) и Blu-Ray дают не полное качество HD, но об этом позже), и поэтому полное соответствие стандартам не играет уже столь важной роли. Следующим по качеству и наиболее распространённым форматом видео высокого разрешения является HDV, с разрешением экрана 1440х1080, но с соотношением также 16х9. Такое соотношение достигается "растягиванием пикселей" по горизонтали, с 1440 до 1920. Поэтому для полноценного просмотра HDV также требуется телевизор FullHD, с разрешением экрана 1920х1080.Разумеется, качество видео в формате HDV ниже чем HD, но тем не менее формат HDV достаточно распространён среди пользователей. Причина заключается в том, что формат HDV был изобретён раньше HD, и еще до появления последнего было разработано и выпущено много видеотехники, поддерживающей только 1440х1080. Фильмы высокого разрешения, обычно записываемые на диски HD DVD и Blu-Ray также имеют разрешение HDV - 1440х1080. Еще до появления HDV и HD появился формат "высокого разрешения" 720p. Разрешение - 1280х720, соотношение сторон - 16х9.  Это, по сути, переходный формат, от стандартного PAL к HDV и HD. Первая любительская видеокамера "высокого разрешения" в мире, выпущенная компанией JVC, снимала на 720p. Еще раньше появился телевизионный формат PAL с разрешением 720х576.с чересстрочной разверткой 50гц. Сейчас это формат используется в цифровом и спутниковом телевидении (не HD). Сейчас (2014-2017гг) я пользуюсь форматом mp4: mp4 - Full HD - 1920 х 1280, 16х9 битрейт переменный 10 - 15 mbps для домашнего просмотра на телевизоре Full HD 64 дюйма этого вполне достаточно. mp4 - HD - 1280 х 720, 16х9, битрейт переменный 4-6 mbps. - если нужно сэкономить место на диске, или качество не имеет большого значения (или нужно ускорить рендеринг). 5. Какой битрейт выбрать. Очень часто задают один и тот же вопрос – какой битрейт лучше выставлять при рендеринге фильма. И поскольку это один из самых главных параметров, влияющих на качество конечного изображения, мы более подробно рассмотрим его. Битрейт это количество информации, передаваемой либо сохраняемой за определённый промежуток времени. Обычно за секунду. В видео принято обозначать им коэффициент сжатия и измеряется он мегабитами (Mbps) либо килобитами (kbps) в секунду. И чем больше его значение, тем качественнее картинка. Проще говоря, когда в кодеке выставляем битрейт мы как бы говорим ему, что у нас есть, например, только 16 мегабит (это 2 мегабайта) на одну секунду видео и он уже пытается при помощи своих алгоритмов сжатия сохранить картинку с наименьшими потерями. Соответственно, чем больше это значение, тем меньше кодеку приходится ужимать изображение, но размер получаемого файла при этом увеличивается. Обычно в программах для монтажа и конвертации видео есть возможность выбрать один из трех режимов сжатия: С постоянным битрейтом. (Constant bitrate, CBR) В этом режиме выставленный битрейт не меняется на протяжении всего кодирования и поэтому размер конечного файла можно точно рассчитать. С переменным битрейтом. (Variable bitrate, VBR) При выборе этого режима мы уже выставляем максимально возможный битрейт, а кодек сам выбирает необходимый для каждой конкретной сцены в видеоролике. Благодаря этому размер конечного файла может быть меньше, чем при выборе режима с постоянным битрейтом. Но рассчитать его уже сложнее. (Можно ориентироваться на максимальный битрейт при подсчёте) С усредненным битрейтом (Average bitrate, ABR) В этом режиме мы уже выставляем минимально и максимально допустимый битрейт. Как и в случае с переменным кодек сам его подбирает, но уже только в этих пределах. Качество кодирования при этом лучше. Так как кодек не может уйти за минимальный предел битрейта. Я выбираю режим с переменным битрейтом потому, что это даёт возможность приблизительно рассчитать размер конечного файла и предсказуемое качество картинки. Какой же тогда устанавливать битрейт? Если Вы перекодируете видео, то нужно смотреть, какой битрейт у вас на оригинальных видео. Если они, например, записаны с 10 mbps, то выставлять при рендере 12 mbps нет никакого смысла. Так как размер файла увеличится, а качество останется таким же (или хуже!). В этом случае можно оставить 10 mbps или уменьшить. То есть для максимально возможного качества можно ориентироваться на битрейт оригинальных видео файлов, не превышая их значений. (Для того чтобы его узнать нужно в браузере Windows (или проигрывателе Меdia Player Classic) кликнуть правой кнопкой мыши на нужном файле, зайти в свойства и выбрать вкладку подробно, там в пункте «Скорость передачи данных» будет указан битрейт на который можно ориентироваться. Здесь же можно увидеть разрешение и частоту кадров.). Битрейт можно рассчитать только с учетом разрешения изображения. Чем меньше разрешение видео, тем меньше можно выбирать битрейт. Оптимальный выбор битрейта: super HD - 3840х2160, 16х9 в интервале 40 – 200 mbps. Для кодирования видео в этом формате нужен либо «SUPER» компьютер или «SUPER» терпение. Full HD - 1920 х 1280, 16х9 в интервале 10 - 50 mbps. HD - 1280 х 720, 16х9 в интервале 3 - 16 mbps. PAL  -720 х 576, 4х3 в интервале 0.5 - 9 mbps. Чем больше битрейт – тем лучше качество, но превышать максимальные битрейты для каждого из разрешений нет смысла – качество улучшаться не будет. Например: если вы создаёте фильм для записи на DVD в формате (PAL), то выставляйте битрейт в пределах 4-6 mbps, или 8-9 mbps для получения максимального качества. если вы создаёте фильм HD - 1280 х 720, то выставляйте битрейт в пределах 7-12 mbps, или 14-16 mbps для получения максимального качества. Допустим мы выставили 50 mbps и рендерим 1 час видео, тогда: 10 mbps * 3600 секунд/8 (переводим в мегабайты) = 4500 мегабайт. То есть 1 час видео при битрейте 10mbps будет занимать 4,5 Гигабайта. Ну а если нам нужно рассчитать необходимый битрейт, чтобы уместить 1 час видео в 10 гигабайт, то нужно: 10*1024=10240 перевели в мегабайты 10240/3600 = 2,84 мегабайта в секунду 2,84 х 8 = = 22,76mbps. (мегабайты в мегабиты)