Что творится с HEVC (h265)

    В своё время разработка кодека H264 стала настоящим прорывом, потому что получилось посадить за один стол людей, занимающихся телевидением, IP камерами, конференц-связью и родить стандарт, которого в целом хватило всем.

    Напоминаю, что кодек — это не конкретный алгоритм, а описание форматов упаковки видео так, что бы упихнуться в предельно сжатое количество бит. Энкодер волен выбирать способы упаковки согласно стандарта кодека.

    Так вот 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) и неплохая поддержка в транспортах и протоколах доставки видео.
    Эрливидео
    Современный видеостриминговый сервер
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 57

      +2
      «Так же надо понимать, что на телефонах сейчас h265 скорее всего будет играться на процессоре». Насколько я в курсе у Qualcomma оно декодится на железе.
      И опять-же, если ничего не путаю проверка этого кодека входит в CTS, следовательно на всехбольшинстве сертифицированных телефонов должно быть.
        +1
        для этого надо что бы ещё появился код, который h265 из hls засовывает в аппаратный декодер и при этом не вешает телефон, а это требует время.
          +2
          Мои субъективные ощущения: h265 проигрывается без каких-либо проблем с «зависанием» или «батарейкой» на iPhone7 (AVPlayer), iPhone6 (AVPlayer), SGS6 (MXPlayer), SGS4 (MXPlayer)… уже не помню тянет ли его SGS3 (мне кажется тогда я ещё не был знаком с h265).
          Причём речь не про пятиминутную демонстрацию «ух ты, проигрывается», а про просмотр нескольких серий в дороге.
          Учитывая существенную экономию в занимаемом на диске месте я стараюсь качать только h265. В Рунете он практически не распространён (проверял несколько месяцев назад, можно сказать проспорил заявив «сейчас всё в h265»), а на зарубежных ресурсах HEVC очень даже популярен.
            +3
            в рунете до сих пор есть «релизеры рутрекера», которые жмут в mpeg4 part2 и упаковывают в avi
              +1

              И большое спасибо им за это. Не все выкидывают свой плеер на свалку с появлением нового стандарта. Avi единственный формат, который проигрывается на старых DVD-плеерах.

                –3
                не, я понимаю что память о дедушке не хочется на помойку, но это же не повод пользоваться его довоенным плеером =)
                +2
                У всех разные потребности. Многие имеют древнючие DVD проигрыватели умеющие DivX/Xvid и их это устраивает. А кто то фанатеет исключительно от 3D и непременно lossless звука, который подается на необоснованно дорогую акустику по еще более необоснованно дорогим проводам из безкислородной меди. И те и другие имеют право. Так что стоит сказать спасибо, что обеспечиваются интересы и тех и других.
                  –1
                  сегодня вся медь бескислородная и с золотом, другой нету =)

                  А H264, который дает существенно лучшее качество давно уже умеет каждый утюг.
                  0
                  Я тоже так когда-то делал, во времена DVD. А потом появился x264vfw. Его, кстати, тоже можно паковать в avi (например, если работать с ним через Virtualdub) — и результаты такой упаковки вполне нормально проигрываются (на PC).
                  +1
                  Флагманы хороши и это прекрасно. Я больше говорю о боли вида: «а вы же нам сделаете что бы всё хорошо показывалось на android 2.2?»
                    0
                    Так процитируйте им свои же слова: «это же не повод пользоваться его довоенным плеером =)» ))
                      –1
                      ох. Вот прям сейчас у нас в списке задач висит помощь людям со стримингом по RTSP файлов вида anny.celebrate.18.320p.mp4 для каких-то древних телефонов, которых в европе бешеное количество
              +3

              Отчего такая нелюбовь к VPx кодекам? H26x все патентоогороженные, VPx же свободные.

                +5
                всё сильно сложнее.

                Дело в том, что у H26x есть вполне понятная бандитская крыша (очень сложно дать другую характеристику американской системе патентов), но с VPx основная свобода заключается в том, что гугл обещает не прессовать.

                Во-первых, гугл обещает это не в виде договора, а в виде какого-то текста на сайте.
                Во-вторых, гугл не обещает защищать в суде за свои деньги вас от патентных нападок.

                Нелюбовь к VPx кодекам берется из-за плохого стандарта (описание H264 и, например, vp8 отличается как поэма Пушкина и сочинение 6-класника), агрессивной политики гугла по расщеплению индустрии (заставляют использовать другие протоколы вместо стандартных), плохой реальной поддержки.
                  +1
                  Во-вторых, гугл не обещает защищать в суде за свои деньги вас от патентных нападок.
                  Горе-то какое. А вот эти вот:
                  у H26x есть вполне понятная бандитская крыша
                  чего-нибудь обещают? Пока я вижу что к одной «бандитской крыше» вполне успешно добавилась вторая, а там будет и третья и четвёртая…

                  Нелюбовь к VPx кодекам берется из-за плохого стандарта (описание H264 и, например, vp8 отличается как поэма Пушкина и сочинение 6-класника), агрессивной политики гугла по расщеплению индустрии (заставляют использовать другие протоколы вместо стандартных), плохой реальной поддержки.
                  Из всего этого проблема — только последнее, но судя по вашей же статье и у H265 тут тоже не всё хорошо.
                    +1
                    да, MPEG-LA обещают защиту.

                    Просто не надо называть VP* свободными, пожалуйста. Это не более чем маркетинговый ход гугла, направленный на программистов.
                      +1
                      В параллельной вселенной Гугл добился бы хардварной поддержки VPX в процах для Андроид устройств. Для этого пришлось бы и стандарт привести в порядок, сделать его действительно свободным (чтобы тот же гугл не пришёл потом к Квалкому) и, скажем, через 2 года сертифицировать аппсы только производителям, у которых есть реализована поддержка аппаратно.
                        +1

                        А сейчас этим чипмейкеры вроде Qualcomm занимаются.
                        В Snap 835 вполне себе есть от них реализация декодера/энкодера h265.

                          +1
                          А в нашей вселенной что?
                          VEG, erlyvideo, обычным-то людям, без миллионов далларов, что с VP9 делать? H.265 я могу кодировать на процессоре x265, с приемлемой скоростью, могу кодировать на видеокарте, а для VP9 у нас, фактически, один тормозной и низкокачественный libvpx.
                          Google сделал крутой аппаратный кодировщик VP9 для YouTube, и он показывает результаты лучше, чем libvpx. Вы представляете: аппаратное решение, заточенное под скорость, обгоняет софтверный энкодер по качеству!
                          +1
                          да, MPEG-LA обещают защиту.
                          Не знаю чего они там обещают, важно, что не делают. Как видим уже и вторая и третья крыши появились. Рэкет хорошо работает только до появления конкурентов, а когда они появлются и выясняется, что «крыша» только деньги брать умеет — то число желающих резко сокращается.
                        0
                        >понятная бандитская крыша (очень сложно дать другую характеристику американской системе патентов)

                        Она не идеальная, но благодаря ей американские технологии ведущие в мире.
                          –1
                          я думаю, что это очень объёмный и интересный вопрос, обсуждение которого не влезет сюда в комментарии =)
                      0
                      А может подскажите куда копать? Пытаюсь закодить видео с экшон-камеры (час порядка 10 гигов выходит), там 1080p60. Кодирую на ffmpeg. Если кодировать на проце, все ок, проигрывается без проблем, только вот жмет ооочень долго. Если кодировать hevc_nvenc (у меня gtx970), то кодирует быстро, но полученный файл не проигрывается. Точнее начинает проигрываться и через пару секунд картинка фризится, а звук идет дальше. Пробовал разными плеерами, результат один. Что не так? Как найти причину?
                        +1
                        немного удивляет, ведь nvenc должен выдавать картинку немного хуже по сжатию (т.е. большего битрейта), но использующую меньше разных фич кодека.

                        Можете выложить — попробую посмотреть. Например, у вас будут просто разломанные таймстемпы или плохо закодированное видео.

                        ffmpeg самый свежий?
                          0
                          Сэмпл и мои результаты кодирования.

                          Тот который 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
                            0
                            Так, на rghost почему-то сэмпл заблочили. Вот на я.диске
                              0
                              VLC media player 2.2.6 воспроизводит некорректно (почти сразу начинаются дёрганые артефакты на сером фоне), а MPC-HC 1.7.13 и SMPlayer 17.7 воспроизводят без проблем. Значит, проблема в конкретном декодере (в разных плеерах может использоваться один и тот же декодер).
                                0
                                Вот у меня обычный HEVC всем играется, а HEVC_NVENC почти никем. Вот хотелось бы чтобы как HEVC.
                                  0
                                  Конкретно MPC-HC и SMPlayer пробовали? В них декодеры встроены и, по идее, должны одинаково работать на любой системе.
                                    0
                                    У меня цель не посмотреть сейчас мною же сделанные транскоды, а научиться их делать такими, чтобы можно было в любом плеере смотреть.
                              0
                              Спасибо, что подсказали :)
                              0
                              Покажите вашу строчку кодирования, какой версией кодируется. Я все думаю выложить обновленную версию своей сборки, скорее всего уже на докере…
                                0
                                См. выше
                                +1
                                Обрати внимание на StaxRip, там встроен кодек NVEncC от rigaya. Кучу дисков пережал — нет проблемы с воспроизведением ни на компе, ни на аппаратных плеерах с поддержкой h.265
                                  +2
                                  Жми в h264, весить будет немного больше, но зато проблем никаких не будет.

                                  Потому что автор слишком заврался, забыв сказать что:
                                  во-первых всё что поддерживает h265 поддерживает и h264;
                                  во-вторых h265 хоть и занимает меньше места, но на его воспроизведение (и тем более на кодирование) требуется больше расчётов;

                                  Так что толку от него пока мало, разве что для железок, которые почему-то не умеют в высокий битрейт, но поддерживают высокое разрешение.
                                  Жёсткие диски измеряются терабайтами, в телефонах тоже десятки если не сотни гигабайт.

                                  Нужен этот h265 сейчас исключительно кучке патентодержателей и производителей воздуха.
                                  Чтобы все покупали новую технику (на старой-то новые фильмы не посмотреть будет) и платили ещё больше денег.

                                  Да, экономия до 50% бит это круто и современно. Но стоит ли оно своей цены?
                                  Для кого-то может и стоит, для меня — пока нет.
                                  Новая карта памяти и новый жёсткий диск пока для меня дешевле потраченного на это времени.
                                    0

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


                                    • Гарантии с поддержкой большой вопрос. Не везде где есть поддержка VP9 есть VP8.
                                    • потребление ресурсов.
                                      Так например поток 1080p AV1 (преемник VP9) закодированый с выходным битрейтом в 1.5 Мбит/с требует на данный момент до 200 ядер для кодирования в реальном времени.

                                    Маркетинговый булщит на тему.


                                    На этом фоне HEVC кажется весьма сбалансированным.

                                      0
                                      VPx в патентном плане выходит дешевле, других преимуществ, к сожалению, я у них не вижу.

                                      Гугель где-то втирал что они, якобы, при равном качестве обеспечивают меньший битрейт.
                                      На практике у меня получалось шило с мылом. При очень-очень малом битрейте VPx получаются менее ужасного качества, но меня лично интересует диапазон 0.8-20 мегабит, в котором принципиальной разницы нет.

                                      Если нужно аппаратное декодирование — h264
                                      Если нужно аппаратное кодирование — пока тоже h264
                                  +2
                                  Про Apple неправы. С iOS 11 будет поддерживаться аппаратно и программно на новых и старых аппаратах. По умолчанию, некоторые аппараты будут сохранять видео и фото с новым кодированием. На WWDC показали матрицу устройств умеет писать/читать. Аппаратно умеют устройства на чипе А10 (iPhone 7 и 7 Plus).

                                  Новые AppleTV вероятно будут в с 4К и значит с HEVC.

                                  Так что, чуть больше чем через месяц картина поменяется.

                                  Для публикации на сервисы будет выполняться перекодирование, но почему бы инстаграму или фейсбуку не загружать фото в новом формате отдавая JPEG не Apple девайсам
                                    +1
                                    я думаю, что резко поменяется если Эппл как раз форсирует hevc. Если будет опционально, то такую уверенность я бы не разделял.
                                      0
                                      Посмотрим, пока всем выгодно, если форсирует. Это же не просто новый формат, который «лучше». он реально будет использоваться в миллионах устройств. А сколько сэкономят сервисы типа Netflix, если их контент будет отжирать меньший канал.
                                        +1
                                        развитие это прекрасно и будет клево, если h265 станет first-class codec
                                          0
                                          Интересно, станет ли эппловский HEIF базирующийся на HEVC «новым JPEGом». Фото контента генерируется то поболее.
                                            0
                                            потребность есть: webp очень хорош, а h264 keyframe уже лучше жпега.
                                            0
                                            Не будет никогда. Все серйозние игроки поддержывают AOMedia, и netflix в их числе. av1 уже привосходит h265.
                                              –1
                                              понимаете, нетфликс — это лишь часть видеоиндустрии.

                                              Есть ещё IP камеры (гигантский объём, сравнимый с количеством мобильных телефонов, потенциально в 10, 100 раз больше) и спутники.

                                              Нетфликс с его очень ограниченными задачами лишь часть.
                                            0

                                            Netflix не использует 265й, только VP9.

                                              0
                                              в браузере h265 сегодня считай что и не покажешь.

                                              А вот на приставках и Smart лучше рассчитывать на h265
                                        +1
                                        >> H265 сравнивают с VP10, потому что так попросил Гугл
                                        А разве не с VP9? Ведь именно он сравним с Н265.
                                          –1
                                          да вроде с обоими сравнивают.
                                            0

                                            Почитайте новости с nabshow этого года.
                                            AV1 как раз с HEVC сравнивали.
                                            При этом картинку показали только для задушенного по битрейту стрима в 500 Кбит/с и только на одном кадре.
                                            Трансляции не было.

                                          • UFO just landed and posted this here
                                              +1
                                              можете привести пример?
                                                0
                                                Ещё обидней с Hi10P, который вроде h264, но уже не тот.
                                                  +1
                                                  похожая проблема с SVC. Теоретически было бы круто, что бы роутер по пути сам снижал качество видео, а на практике что-то пошло не так.
                                                +1

                                                Подход к работе h.265 альянса: Спеки мы на 500 страниц написали, патенты на компании поделили, теперь попробуем это закодить. В итоге еще год уходит, чтобы вылизать код согласно спекам. Референсом является описание, а не сам декодер.


                                                Подход к работе VPX: Завтра релиз — релизим текущую ветку разработки. В итоге алгоритм с багами (а фриз уже прошел), 20 страниц описания имеющихся функций и ничего более. В течении последующего года документ расширяется еще на 20 страниц. Референсом является сам код, поскольку описание чрезвычайно бедное.


                                                Подход к работе AVS (китайский стандарт видео, возможно даже лучший чем предыдущие два): Релиз — описание на китайском, требуется время на перевод. Проходит время и находятся разногласия в спеке, спек, и вслед ним имплементация, исправляются. Проходит еще немного времени — находят в баг в имплементации, но поскольку реализация понравилась больше, чем описание стандарта, то исправляется содержание самого стандарта. Что является референсом в этом случае сказать затруднительно, баги на обеих сторонах. По моему мнению референсом будут тестовые стримы от компании Allegro (нисколько не реклама, а хорошо сделанная работа). Референсный декодер должен декодировать их так, чтобы результат совпалал с результатами их декодера (они поставляют только бинарник).

                                                  +1
                                                  H265 сравнивают с VP10, потому что так попросил Гугл. На практике у VP10 проблемы с ещё меньшей поддержкой со стороны железа
                                                  У VP10 нет поддержки со стороны железа по той простой причине, что он так и не вышел, и Google целиком и полностью перекинул силы на AV1.

                                                  Список компаний, которые занимаются AV1 внушителен. Тут и поставщики контента, и производители железа, и производители браузеров. Все кто нужно. Почему вдруг все крупные игроки зашевелились? Потому что за h265 затребовали сильно много денег, чем за h264, встречал что сумма выросла более чем на порядок. Это при том, что деньги за его использование требует не одна организация, а целых три (недавно был сформирован третий пул патентов). То есть ситуацию с h265 довели до абсурда, из-за чего более адекватным компаниям пришлось присоединиться к Google и организовать AOMedia с целью разработки совместными усилиями новых видеокодеков серии AVx. AV1 должны закончить к концу этого года, дальше можно ожидать появление аппаратной поддержки этого кодека (Intel и ARM среди разработчиков кодека) и поддержку браузерами (почти все производители браузеров в деле), а там и поставщики контента начнут им пользоваться.
                                                    –1
                                                    да, AV1 может стать чем-то большим именно по этим причинам.

                                                  Only users with full accounts can post comments. Log in, please.