Напоминаю, что кодек — это не конкретный алгоритм, а описание форматов упаковки видео так, что бы упихнуться в предельно сжатое количество бит. Энкодер волен выбирать способы упаковки согласно стандарта кодека.
Так вот H264 — это сочетание хорошего кодека, хороших энкодеров и массы приличных декодеров. Но что же происходит с H265?
H265 — это стандарт, который приходит на смену H264. Его прибытие стало омрачено сомнительной авантюрой гугла с их VP6, VP9, VP10 и сказками о том, что кодеки серии VP лучше любого H264 и т.п.
Главная суть H265 в том, что он продается как решение для размеров экранов выше чем FullHD. Для чего он реально годится мы поговорим ниже, но мир устроен так, что сначала надо продать. Вот для 4K он и продается.
Я хочу немного поговорить о текущем статусе поддержки H265, потому что к нам с этим обращаются и приходится проводить ликбез каждый раз.
Кодирование
На сегодняшний день H265, он же HEVC уже поддерживается на большом количестве энкодеров: софтверные, обычные аппаратные (Nvidia NVENC, Intel QSV) и железные аппаратные.
Какое-то заметное применение H265 можно встретить на спутниковом телевидении (редкие, но уже встречающиеся каналы с гигантским битрейтом), IP камеры и всякие бесчисленные коробочки для захвата и кодирования HDMI (и немножко SDI).
Зачем нужно захватывать HDMI и публиковать на сайт? Ну как бы догадайтесь сами, особенно если железка обещает вскрыть HDCP. Подскажу лишь, что это очень популярно для стриминга игр, когда не хочется добавлять никакой нагрузки на компьютер.
Здесь надо быть очень аккуратными с тем, что именно будет уметь железка или софтина. Так, например, Hisilicon достаточно давно выпустил первый чипсет с поддержкой H265 для IP-камер, а вот софт отстал чуть ли не на полтора года от них. Сегодня до сих пор продается полно камер, у которых написано H265, а они не могут его отдавать в реальном времени — только экспортировать файлы через нерабочий китайский софт. В чём тут выражается поддержка H265, продавцы ответить не могут, но упорно кивают головой: да, да, можем h265.
Аналогичная проблема и с RTMP энкодерами. Один из частейших вопросов: «а что, ваш софт не умеет H265 по RTMP?».
Это не наш софт «не умеет», а RTMP не умеет H265. В RTML используется flv-подобная упаковка кадров и H265 ни в одном, ни в другом стандарте как доступные не отмечены. Есть всякие хитрые хаки, позволяющие запихать H265 в протокол, не рассчитанный на это, но называть это RTMP уже будет перебор — это будет проприетарный, закрытый протокол. Подобные изменения существуют, делаются они китайцами, а это как правило означает просто истеричное отношение к предложениям поделиться спецификацией на протокол.
Т.е. железо может уметь H265, а софт, запущенный на нём, может отставать в развитии и просто не уметь с ним работать и такого пока ещё полно.
Вещание
Сейчас в дикой природе H265 проще всего встретить на IP-камерах: там оно уже есть и уже потихоньку распространяется, спасибо HUAWEI. Так же можно на спутниках найти 30-мегабитные каналы, сжатые в H265.
По нашему опыту постепенно делаются попытки внедрить его в различных OTT-сервисах, где есть контроль за устройством.
По поводу вещания ситуация такая: H265 в протоколе HLS поддерживается всеми уже очень давно, а эппл очень вовремя очухались и зафиксировали очевидное в стандарте. Но всем пока что плевать, потому что мало какие айфоны могут его проигрывать.
Т.е. важно запомнить: MPEG-TS давно и надежно умеет передавать H265, а значит то, что называют UDP или HTTP с большой вероятностью тоже сможет.
Так же H265 передается по RTSP: есть упаковка и в SDP, и в RTP. Остается старый нюанс с передачей bframes по RTSP, но это отдельная головная боль.
Если вы встречаете H265 и RTMP, то скорее всего это болтовня, но если оно реально работает, значит люди просто напихали байт и пользуются патченым сервером и клиентом. В стандартный RTMP H265 не влезает.
Проигрывание
Пока забудьте =)
Из десктопных браузеров показывать H265 сейчас фактически умеет только Microsoft Edge, остальные нет.
Есть проигрывание на телевизионных приставках, SmartTV и в программах/приложени, но браузеры пока очень сильно отстают.
Так же надо понимать, что на телефонах сейчас h265 скорее всего будет играться на процессоре, т.е. если хватит батарейки на просмотр рекламы, уже неплохо.
Конкуренция
H265 сравнивают с h264: ведь разницу в битрейте надо ещё увидеть, а поддержка h264 сейчас есть абсолютно везде
H265 сравнивают с VP10, потому что так попросил Гугл. На практике у VP10 проблемы с ещё меньшей поддержкой со стороны железа (а значит для него нужно ещё больше батареек и процессорной мощности) и плохие протоколы проигрывания.
H265 начали сравнивать с AV1, но это пока вообще можно не рассматривать — слишком новая штука. Очень интересно, подождем несколько лет.
Резюме
H265 развивается, распространяется, но на сегодняшний день скорее всего не будет ничего фатального, если вы его пока не рассматриваете.
У него уже на старте есть конкуренты, с которыми прийдется побороться, но есть и хорошая стартовая позиция в виде приличной родословной (от тех же людей, что и H264) и неплохая поддержка в транспортах и протоколах доставки видео.
Комментарии (57)
Evengard
08.08.2017 16:22+3Отчего такая нелюбовь к VPx кодекам? H26x все патентоогороженные, VPx же свободные.
erlyvideo Автор
08.08.2017 16:28+5всё сильно сложнее.
Дело в том, что у H26x есть вполне понятная бандитская крыша (очень сложно дать другую характеристику американской системе патентов), но с VPx основная свобода заключается в том, что гугл обещает не прессовать.
Во-первых, гугл обещает это не в виде договора, а в виде какого-то текста на сайте.
Во-вторых, гугл не обещает защищать в суде за свои деньги вас от патентных нападок.
Нелюбовь к VPx кодекам берется из-за плохого стандарта (описание H264 и, например, vp8 отличается как поэма Пушкина и сочинение 6-класника), агрессивной политики гугла по расщеплению индустрии (заставляют использовать другие протоколы вместо стандартных), плохой реальной поддержки.khim
09.08.2017 04:37+1Во-вторых, гугл не обещает защищать в суде за свои деньги вас от патентных нападок.
Горе-то какое. А вот эти вот:у H26x есть вполне понятная бандитская крыша
чего-нибудь обещают? Пока я вижу что к одной «бандитской крыше» вполне успешно добавилась вторая, а там будет и третья и четвёртая…
Нелюбовь к VPx кодекам берется из-за плохого стандарта (описание H264 и, например, vp8 отличается как поэма Пушкина и сочинение 6-класника), агрессивной политики гугла по расщеплению индустрии (заставляют использовать другие протоколы вместо стандартных), плохой реальной поддержки.
Из всего этого проблема — только последнее, но судя по вашей же статье и у H265 тут тоже не всё хорошо.erlyvideo Автор
09.08.2017 08:04+1да, MPEG-LA обещают защиту.
Просто не надо называть VP* свободными, пожалуйста. Это не более чем маркетинговый ход гугла, направленный на программистов.entze
09.08.2017 09:09+1В параллельной вселенной Гугл добился бы хардварной поддержки VPX в процах для Андроид устройств. Для этого пришлось бы и стандарт привести в порядок, сделать его действительно свободным (чтобы тот же гугл не пришёл потом к Квалкому) и, скажем, через 2 года сертифицировать аппсы только производителям, у которых есть реализована поддержка аппаратно.
Paul_Nice
09.08.2017 11:02+1А сейчас этим чипмейкеры вроде Qualcomm занимаются.
В Snap 835 вполне себе есть от них реализация декодера/энкодера h265.
ValdikSS
10.08.2017 00:01+1А в нашей вселенной что?
VEG, erlyvideo, обычным-то людям, без миллионов далларов, что с VP9 делать? H.265 я могу кодировать на процессоре x265, с приемлемой скоростью, могу кодировать на видеокарте, а для VP9 у нас, фактически, один тормозной и низкокачественный libvpx.
Google сделал крутой аппаратный кодировщик VP9 для YouTube, и он показывает результаты лучше, чем libvpx. Вы представляете: аппаратное решение, заточенное под скорость, обгоняет софтверный энкодер по качеству!
khim
09.08.2017 15:17+1да, MPEG-LA обещают защиту.
Не знаю чего они там обещают, важно, что не делают. Как видим уже и вторая и третья крыши появились. Рэкет хорошо работает только до появления конкурентов, а когда они появлются и выясняется, что «крыша» только деньги брать умеет — то число желающих резко сокращается.
vasili111
09.08.2017 12:57>понятная бандитская крыша (очень сложно дать другую характеристику американской системе патентов)
Она не идеальная, но благодаря ей американские технологии ведущие в мире.erlyvideo Автор
09.08.2017 12:58-1я думаю, что это очень объёмный и интересный вопрос, обсуждение которого не влезет сюда в комментарии =)
divanikus
08.08.2017 16:49А может подскажите куда копать? Пытаюсь закодить видео с экшон-камеры (час порядка 10 гигов выходит), там 1080p60. Кодирую на ffmpeg. Если кодировать на проце, все ок, проигрывается без проблем, только вот жмет ооочень долго. Если кодировать hevc_nvenc (у меня gtx970), то кодирует быстро, но полученный файл не проигрывается. Точнее начинает проигрываться и через пару секунд картинка фризится, а звук идет дальше. Пробовал разными плеерами, результат один. Что не так? Как найти причину?
erlyvideo Автор
08.08.2017 17:01+1немного удивляет, ведь nvenc должен выдавать картинку немного хуже по сжатию (т.е. большего битрейта), но использующую меньше разных фич кодека.
Можете выложить — попробую посмотреть. Например, у вас будут просто разломанные таймстемпы или плохо закодированное видео.
ffmpeg самый свежий?divanikus
08.08.2017 20:45Сэмпл и мои результаты кодирования.
Тот который HEVC_NVENC у меня просто фризится через секунду после старта. HEVC проигрывается нормально.
Строчка:
ffmpeg.exe -i 2017_0808_202929_ORIG.MP4 -c:v hevc_nvenc -c:a copy 2017_0808_202929_HEVC_NVENC.MP4
ffmpeg version N-86838-gdd4b7ba Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.1.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
libavutil 55. 68.100 / 55. 68.100
libavcodec 57.102.100 / 57.102.100
libavformat 57. 76.100 / 57. 76.100
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 95.100 / 6. 95.100
libswscale 4. 7.101 / 4. 7.101
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
MTonly
09.08.2017 02:18VLC media player 2.2.6 воспроизводит некорректно (почти сразу начинаются дёрганые артефакты на сером фоне), а MPC-HC 1.7.13 и SMPlayer 17.7 воспроизводят без проблем. Значит, проблема в конкретном декодере (в разных плеерах может использоваться один и тот же декодер).
divanikus
09.08.2017 12:33Вот у меня обычный HEVC всем играется, а HEVC_NVENC почти никем. Вот хотелось бы чтобы как HEVC.
slushay
08.08.2017 18:02+1Обрати внимание на StaxRip, там встроен кодек NVEncC от rigaya. Кучу дисков пережал — нет проблемы с воспроизведением ни на компе, ни на аппаратных плеерах с поддержкой h.265
Goury
08.08.2017 18:31+2Жми в h264, весить будет немного больше, но зато проблем никаких не будет.
Потому что автор слишком заврался, забыв сказать что:
во-первых всё что поддерживает h265 поддерживает и h264;
во-вторых h265 хоть и занимает меньше места, но на его воспроизведение (и тем более на кодирование) требуется больше расчётов;
Так что толку от него пока мало, разве что для железок, которые почему-то не умеют в высокий битрейт, но поддерживают высокое разрешение.
Жёсткие диски измеряются терабайтами, в телефонах тоже десятки если не сотни гигабайт.
Нужен этот h265 сейчас исключительно кучке патентодержателей и производителей воздуха.
Чтобы все покупали новую технику (на старой-то новые фильмы не посмотреть будет) и платили ещё больше денег.
Да, экономия до 50% бит это круто и современно. Но стоит ли оно своей цены?
Для кого-то может и стоит, для меня — пока нет.
Новая карта памяти и новый жёсткий диск пока для меня дешевле потраченного на это времени.Paul_Nice
09.08.2017 12:35И тут мы возвращаемся к тому, что семейство VPх должно быть ещё менее приятным с вашей точки зрения, т.к.
- Гарантии с поддержкой большой вопрос. Не везде где есть поддержка VP9 есть VP8.
- потребление ресурсов.
Так например поток 1080p AV1 (преемник VP9) закодированый с выходным битрейтом в 1.5 Мбит/с требует на данный момент до 200 ядер для кодирования в реальном времени.
Маркетинговый булщит на тему.
На этом фоне HEVC кажется весьма сбалансированным.
Goury
09.08.2017 12:50VPx в патентном плане выходит дешевле, других преимуществ, к сожалению, я у них не вижу.
Гугель где-то втирал что они, якобы, при равном качестве обеспечивают меньший битрейт.
На практике у меня получалось шило с мылом. При очень-очень малом битрейте VPx получаются менее ужасного качества, но меня лично интересует диапазон 0.8-20 мегабит, в котором принципиальной разницы нет.
Если нужно аппаратное декодирование — h264
Если нужно аппаратное кодирование — пока тоже h264
entze
08.08.2017 18:05+2Про Apple неправы. С iOS 11 будет поддерживаться аппаратно и программно на новых и старых аппаратах. По умолчанию, некоторые аппараты будут сохранять видео и фото с новым кодированием. На WWDC показали матрицу устройств умеет писать/читать. Аппаратно умеют устройства на чипе А10 (iPhone 7 и 7 Plus).
Новые AppleTV вероятно будут в с 4К и значит с HEVC.
Так что, чуть больше чем через месяц картина поменяется.
Для публикации на сервисы будет выполняться перекодирование, но почему бы инстаграму или фейсбуку не загружать фото в новом формате отдавая JPEG не Apple девайсамerlyvideo Автор
08.08.2017 18:07+1я думаю, что резко поменяется если Эппл как раз форсирует hevc. Если будет опционально, то такую уверенность я бы не разделял.
entze
08.08.2017 18:20Посмотрим, пока всем выгодно, если форсирует. Это же не просто новый формат, который «лучше». он реально будет использоваться в миллионах устройств. А сколько сэкономят сервисы типа Netflix, если их контент будет отжирать меньший канал.
erlyvideo Автор
08.08.2017 18:23+1развитие это прекрасно и будет клево, если h265 станет first-class codec
patriotyk
09.08.2017 20:24Не будет никогда. Все серйозние игроки поддержывают AOMedia, и netflix в их числе. av1 уже привосходит h265.
erlyvideo Автор
09.08.2017 20:25-1понимаете, нетфликс — это лишь часть видеоиндустрии.
Есть ещё IP камеры (гигантский объём, сравнимый с количеством мобильных телефонов, потенциально в 10, 100 раз больше) и спутники.
Нетфликс с его очень ограниченными задачами лишь часть.
Hedgar2018
08.08.2017 18:50+1>> H265 сравнивают с VP10, потому что так попросил Гугл
А разве не с VP9? Ведь именно он сравним с Н265.Paul_Nice
09.08.2017 12:40Почитайте новости с nabshow этого года.
AV1 как раз с HEVC сравнивали.
При этом картинку показали только для задушенного по битрейту стрима в 500 Кбит/с и только на одном кадре.
Трансляции не было.
zedalert
08.08.2017 22:35+1Очень обидно, когда находишь какую-нибудь раздачу только в HEVC, на которого нет даже программной мощности, при том что сейчас 9 из 10 устройств умеют h264.
lexxsu
09.08.2017 08:03+1Подход к работе h.265 альянса: Спеки мы на 500 страниц написали, патенты на компании поделили, теперь попробуем это закодить. В итоге еще год уходит, чтобы вылизать код согласно спекам. Референсом является описание, а не сам декодер.
Подход к работе VPX: Завтра релиз — релизим текущую ветку разработки. В итоге алгоритм с багами (а фриз уже прошел), 20 страниц описания имеющихся функций и ничего более. В течении последующего года документ расширяется еще на 20 страниц. Референсом является сам код, поскольку описание чрезвычайно бедное.
Подход к работе AVS (китайский стандарт видео, возможно даже лучший чем предыдущие два): Релиз — описание на китайском, требуется время на перевод. Проходит время и находятся разногласия в спеке, спек, и вслед ним имплементация, исправляются. Проходит еще немного времени — находят в баг в имплементации, но поскольку реализация понравилась больше, чем описание стандарта, то исправляется содержание самого стандарта. Что является референсом в этом случае сказать затруднительно, баги на обеих сторонах. По моему мнению референсом будут тестовые стримы от компании Allegro (нисколько не реклама, а хорошо сделанная работа). Референсный декодер должен декодировать их так, чтобы результат совпалал с результатами их декодера (они поставляют только бинарник).
VEG
09.08.2017 12:38+1H265 сравнивают с VP10, потому что так попросил Гугл. На практике у VP10 проблемы с ещё меньшей поддержкой со стороны железа
У VP10 нет поддержки со стороны железа по той простой причине, что он так и не вышел, и Google целиком и полностью перекинул силы на AV1.
Список компаний, которые занимаются AV1 внушителен. Тут и поставщики контента, и производители железа, и производители браузеров. Все кто нужно. Почему вдруг все крупные игроки зашевелились? Потому что за h265 затребовали сильно много денег, чем за h264, встречал что сумма выросла более чем на порядок. Это при том, что деньги за его использование требует не одна организация, а целых три (недавно был сформирован третий пул патентов). То есть ситуацию с h265 довели до абсурда, из-за чего более адекватным компаниям пришлось присоединиться к Google и организовать AOMedia с целью разработки совместными усилиями новых видеокодеков серии AVx. AV1 должны закончить к концу этого года, дальше можно ожидать появление аппаратной поддержки этого кодека (Intel и ARM среди разработчиков кодека) и поддержку браузерами (почти все производители браузеров в деле), а там и поставщики контента начнут им пользоваться.
Sklott
«Так же надо понимать, что на телефонах сейчас h265 скорее всего будет играться на процессоре». Насколько я в курсе у Qualcomma оно декодится на железе.
И опять-же, если ничего не путаю проверка этого кодека входит в CTS, следовательно на
всехбольшинстве сертифицированных телефонов должно быть.erlyvideo Автор
для этого надо что бы ещё появился код, который h265 из hls засовывает в аппаратный декодер и при этом не вешает телефон, а это требует время.
archimed7592
Мои субъективные ощущения: h265 проигрывается без каких-либо проблем с «зависанием» или «батарейкой» на iPhone7 (AVPlayer), iPhone6 (AVPlayer), SGS6 (MXPlayer), SGS4 (MXPlayer)… уже не помню тянет ли его SGS3 (мне кажется тогда я ещё не был знаком с h265).
Причём речь не про пятиминутную демонстрацию «ух ты, проигрывается», а про просмотр нескольких серий в дороге.
Учитывая существенную экономию в занимаемом на диске месте я стараюсь качать только h265. В Рунете он практически не распространён (проверял несколько месяцев назад, можно сказать проспорил заявив «сейчас всё в h265»), а на зарубежных ресурсах HEVC очень даже популярен.
erlyvideo Автор
в рунете до сих пор есть «релизеры рутрекера», которые жмут в mpeg4 part2 и упаковывают в avi
stardust_kid
И большое спасибо им за это. Не все выкидывают свой плеер на свалку с появлением нового стандарта. Avi единственный формат, который проигрывается на старых DVD-плеерах.
erlyvideo Автор
не, я понимаю что память о дедушке не хочется на помойку, но это же не повод пользоваться его довоенным плеером =)
GarfieldX
У всех разные потребности. Многие имеют древнючие DVD проигрыватели умеющие DivX/Xvid и их это устраивает. А кто то фанатеет исключительно от 3D и непременно lossless звука, который подается на необоснованно дорогую акустику по еще более необоснованно дорогим проводам из безкислородной меди. И те и другие имеют право. Так что стоит сказать спасибо, что обеспечиваются интересы и тех и других.
erlyvideo Автор
сегодня вся медь бескислородная и с золотом, другой нету =)
А H264, который дает существенно лучшее качество давно уже умеет каждый утюг.
Massacre
Я тоже так когда-то делал, во времена DVD. А потом появился x264vfw. Его, кстати, тоже можно паковать в avi (например, если работать с ним через Virtualdub) — и результаты такой упаковки вполне нормально проигрываются (на PC).
erlyvideo Автор
Флагманы хороши и это прекрасно. Я больше говорю о боли вида: «а вы же нам сделаете что бы всё хорошо показывалось на android 2.2?»
batyrmastyr
Так процитируйте им свои же слова: «это же не повод пользоваться его довоенным плеером =)» ))
erlyvideo Автор
ох. Вот прям сейчас у нас в списке задач висит помощь людям со стримингом по RTSP файлов вида anny.celebrate.18.320p.mp4 для каких-то древних телефонов, которых в европе бешеное количество