Что значит формат видео не поддерживается кодирования h264
Как воспроизводить файлы H.264 и H.265 на плеере VLC и конвертировать в MP4?
Как воспроизводить файлы H.264 и H.265 на плеере VLC и конвертировать в MP4?
Видеокодеки H.264 и H.265 сегодня являются наиболее распространенным для сжатия видео в системах видеонаблюдения. Но как воспроизводить сжатые этими кодеками файлы на компьютере под управлением Windows или Mac OS?
Проще и лучше всего для этого использовать видео проигрыватель VLC. Для этого нужно выполнить несколько действий:
Шаг 1. Загрузите последнюю версию VLC здесь и установите ее на свой компьютер.
Шаг 2. Запустите медиаплеер VLC. Перейдите в Инструменты, а затем нажмите Настройки.
Шаг 3. Отметьте параметр «Все», чтобы отобразить все настройки.
Шаг 4. Выберите «H264 video demuxer» или HEVC/H.265 video demuxerв модуле Demux. Затем нажмите Сохранить.
После этого сжатое одним из этих кодеков видео можно просматривать на ПК или ноутбуке пол любой операционной системой в медиаплеере VLC.
Кому проще увидеть один раз, чем 10 раз прочесть, предлагаем посмотреть видеоролик.
Если у вас возникают проблемы и вы не можете воспроизводить видео H.264 или H.265 на проигрывателе VLC, попробуйте следующие советы по устранению неполадок, которые могут помочь решить проблемы:
Как конвертировать файлы H.264 в MP4
Другой способ воспроизвести видео H.264 на VLC заключается в том, чтобы сначала преобразовать файлы H.264 или H.265 в формат MP4, а затем воспроизвести видео на медиаплеере VLC. Однако в настоящее время большинство производителей видеонаблюдения предоставляют встроенные конвертеры, поэтому при экспорте видео они уже находятся в формате MP4.
Для преобразования файлов H.264 / H.265 в MP4 нужно:
Шаг 3. Выберите « MP4 » в качестве формата видео, в который вы хотите преобразовать.
После того, как вы закончите преобразование файлов H.264 в формат MP4, вы сможете воспроизводить и просматривать видео в проигрывателе VLC.
Ну а мы напоминаем, что наша компания «Запишем всё» с 2010 года занимается монтажом, модернизацией и обслуживанием любых систем видеонаблюдения, а также видеодомофонов в Москве и Подмосковье.
Мы работаем быстро, качественно и по доступным ценам. Перечень услуг и цены на их вы можете посмотреть здесь.
Звоните +7 (499) 390-28-45 с 8-00 до 22-00 в любой день недели, в том числе и в выходные. Мы будем рады Вам помочь!
Как исправить ошибку неподдерживаемого аудио-видео файла на Android
Довольно обидно увидеть ошибку «не удается открыть файл» или «неподдерживаемый аудиокодек», особенно, когда вы скинули фильм дома, а пытаетесь посмотреть его в поезде. Так как же исправить ошибку неподдерживаемого видеофайла? Читайте дальше, и мы покажем решение.
Что такое кодек?
Кодек на самом деле является аббревиатурой кодер-декодер. Название на самом деле говорит само за себя: это метод для кодирования и декодирования данных, в частности сжатых данных. Кодеки принимают данные (в данном случае видеоданные) и либо сжимают, чтобы его можно было сохранить, либо распаковывают, чтобы его можно было просмотреть.
Однако кодеки отличаются от контейнеров и форматов файлов. Например, AVI часто ошибочно принимают за кодек, когда речь идет просто о типе видеофайла.
Что такое контейнер?
Обычно контейнер также называется форматом файла. Он заботится о хранении, транспортировке и представлении (пока кодек готовит файл для этих действий). Контейнеры позаботятся о синхронизации аудио и видео. Контейнер является частью файла, который определяет тип файла. Проще говоря — если у вас есть файл mrandroid.mp4, MP4 является контейнером.
Почему мое видео не воспроизводится?
В большинстве случаев причина появления сообщения об ошибке при попытке воспроизведения видеофайла на устройстве Android заключается в том, что кодек мультимедийного файла не поддерживается медиаплеером. Другая возможная причина заключается в том, что аудиокодек не поддерживается. Вы можете подумать, что ваш медиаплеер произвольно решает воспроизводить и не воспроизводить файлы одного и того же типа, но контейнер может содержать несколько кодеков, которые ваш телефон может не поддерживать.
Как я могу воспроизводить «неподдерживаемые медиа-файлы» на моем смартфоне?
Как упоминалось выше, одна из наиболее вероятных причин, по которым вы получаете «не удается открыть файл», «неподдерживаемый аудиокодек» или «ошибка неподдерживаемого видеофайла», заключается в том, что текущий медиаплеер не поддерживает кодек вашего видео. Самым простым решением является переключение с видео-плеера по умолчанию и загрузка нового. Вот два наиболее универсальных проигрывателя Android, которые мы рекомендуем:
VLC для Android
Если вы когда-либо использовали VLC на своем ПК, вы знаете, что это один из самых удобных и надежных медиаплееров. То же самое относится и к приложению VLC для Android. Он включает в себя все кодеки без необходимости дополнительных загрузок. Он обеспечивает поддержку сжатого видео DivX и XviD, а также различных форматов — MKV, MP4, AVI, MOV, Ogg, FLAC, TS, M2TS, Wv и AAC. Для тех, кто любит смотреть иностранные фильмы или аниме, вы будете рады узнать, что VLC также поддерживает многодорожечный звук и субтитры. Мало того, приложение легкое, бесплатное и не имеет противной рекламы. Это один из лучших, если не самый лучший, медиаплеер для Android.
MX Player
Какой ваш любимый видеоплеер? Дайте нам знать об этом в комментариях.
Как исправить ошибку аудио-видеофайл не поддерживается на Android?
Нет ничего более неприятного чем когда загружаешь на телефон видео или аудио файл, запускаешь его в плеере Android и получаешь ошибку «невозможно открыть файл» или «неподдерживаемый аудиокодек» при попытке воспроизвести его. Итак, как же решить ошибку неподдерживаемого аудио-видеофайла на Android? Читайте дальше, мы расскажем наше решение!
Прежде чем мы углубимся в детали, стоит объяснить, почему и как эта ошибка возникает. Когда казалось бы, что и один тот же формат видеофайла не поддерживается, а другой прекасно воспроизводиться! Для этого необходимо понять что такое кодек и контейнеры.
Что такое кодек?
Во-первых, кодек на самом деле является аббревиатурой от КОмпрессора-ДЕКомпрессора. Название фактически говорит само за себя: это метод кодирования и декодирования данных, в том числе и для сжатых данных. Кодеки берут данные и сжимают их.
Что такое контейнер?
Контейнер — это файловый формат. Он занимается упаковкой, транспортировкой и воспроизведением, в то время как кодек подготавливает файл для всех этих действий. Контейнеры также занимается синхронизацией звука и видео. Контейнер является частью файла, определяющего тип файла. Другими словами — если у вас есть файл matrix.MP4, то MP4 контейнер.
Почему мое видео не воспроизводиться?
В большинстве случаев причина, по которой вы получаете сообщение об ошибке при попытке воспроизведения видеофайла на вашем устройстве Android, состоит в том, что кодек вашего медиафайла отличается от кодека вашего видеоплеер или плеер не поддерживает кодек. Возможно вы решите, что ваш медиаплеер произвольно решает что проигрывать, а что нет, а на самом деле файлы в одном контейнере содержат различные кодеки.
Как воспроизводить «неподдерживаемые медиафайлы» на моем смартфоне?
Как мы уже сказали выше, одна из наиболее вероятных причин, по которым вы получаете «невозможно открыть файл», «неподдерживаемый аудиокодек» или «неподдерживаемая ошибка видеофайла», заключается в том, что ваш текущий медиаплеер не поддерживает кодек вашего файла. Самое простое решение — загрузить новый медиаплеер.
VLC — один из лучших и «всеядных» медиаплееров. Он поддерживает практически любой формат файла, может обрабатывать несколько звуковых дорожек и субтитров!
WebRTC на Android: как включить аппаратное кодирование на множестве устройств
Для видеозвонков в Badoo мы используем стандарт WebRTC и кодек H.264. Если верить документации, этот кодек должен без проблем работать на любых устройствах Android начиная с Android 5.0. Но на практике всё оказалось не совсем так. В этой статье я расскажу про особенности реализации аппаратного кодирования для кодека H.264 в WebRTC и о том, как заставить его работать на большем количестве устройств.
Почему именно H.264?
При соединении по WebRTC все устройства, участвующие в сеансе, передают различные параметры связи, в том числе видео- и аудиокодеки. Если устройства поддерживают несколько кодеков (например, VP8 и H.264), приоритетные для платформы кодеки указываются первыми. Эти данные используются на этапе согласования в WebRTC, после которого остаются только кодеки, поддерживаемые всеми устройствами. Пример таких данных с расшифровкой можно увидеть в этом документе.
В случае с видеозвонками при отсутствии на одном из устройств поддержки кодека H.264 оба устройства могут перейти, например, на кодек VP8, который не зависит от аппаратной реализации на устройстве. Но наше приложение доступно на самых разных гаджетах, в том числе на смартфонах предыдущих поколений. Поэтому для видеосвязи мы хотели по возможности использовать аппаратное кодирование: оно снижает нагрузку на процессор и не так сильно ест батарею, что критично для устаревших гаджетов. Поддержка аппаратного кодирования H.264 реализована на большом количестве устройств, в отличие от того же VP8.
Поддержка H.264 на Android
Если верить описанию поддержки форматов мультимедиа, декодирование H.264 Baseline Profile должно работать на всех Android-устройствах, а кодирование — начиная с Android 3.0. В Badoo мы поддерживаем устройства начиная с Android 5.0, так что у нас не должно было возникнуть проблем. Но всё оказалось не так просто: даже в гаджетах с пятой версией мы обнаружили большое количество особенностей.
С чем это может быть связано?
Как известно, при разработке нового устройства на Android любому производителю необходимо пройти набор тестов Compatibility Test Suite. Он запускается на подключённом к устройству ПК, а его результаты необходимо отправить в Google для подтверждения того, что устройство соответствует требованиям ОС Android указанной версии. Только после этого гаджет можно выпустить на рынок.
Нас в этом наборе тестов интересуют мультимедиа-тесты, а конкретнее — тесты на кодирование и декодирование видео. Я решил остановиться на тестах EncodeDecodeTest, MediaCodecTest, DecoderTest и EncoderTest, так как они присутствуют на всех версиях Android начиная с 4.3. График количества строк кода в этих тестах выглядит так:
До версии 4.3 большинства из этих тестов просто не существовало, и значительный их прирост пришёлся на версии 5 и 7. Поэтому можно говорить о том, что до версии Android 4.3 Google никак не проверяла соответствие устройств своей спецификации по кодированию и декодированию видео, а в версии 5.0 значительно улучшила эту проверку.
Казалось бы, это указывает на то, что начиная с версии 5.0 с кодированием всё должно быть в порядке. Но, учитывая предыдущий мой опыт работы с декодированием потокового видео на Android, я был уверен, что это не так. Достаточно было посмотреть на количество топиков про кодирование в Google-группе discuss-webrtc.
Искать подводные камни нам помогали исходные файлы WebRTC, которые находятся в свободном доступе. Рассмотрим их подробнее.
Поддержка H.264 в WebRTC
Тут есть метод с говорящим названием isHardwareSupportedInCurrentSdkH264:
Как мы видим, поддержка аппаратного кодирования на Android реализована только для чипсетов Qualcomm и Exynos. Почему же в стандартной реализации WebRTC нет поддержки других чипсетов? Вероятнее всего, это связано с особенностями реализации аппаратных кодеков производителей. И выявить эти особенности часто можно только на продакшене, поскольку найти те или иные устройства не всегда представляется возможным.
Все описания кодеков на устройстве хранятся в файле media_codecs.xml. Вот, например, этот файл для Pixel XL и для HUAWEI P8 lite. При получении списка кодеков с помощью метода getCodecInfos() объекта MediaCodecList этот файл парсится — и возвращаются кодеки, хранящиеся в нём. Эта операция и правильность заполнения этого файла производителем покрываются в CTS тестом MediaCodecListTest, который также увеличился со 160 строк кода в Android 4.3 до 740 строк в Android 10.
В Badoo мы поменяли код метода isHardwareSupportedInCurrentSdkH264, отказавшись от «белого» списка кодеков и заменив его «чёрным» списком префиксов программных кодеков, которые перечислены в WebRTC:
Но нельзя просто так взять и реализовать поддержку всех кодеков, не обращая внимания на особенности производителей. Из названий топиков, посвящённых аппаратному кодированию на Android в группе discuss-webrtc, можно понять, что в этом случае у нас точно возникнут ошибки. В основном они появляются на этапе конфигурации кодека.
Параметры конфигурации кодека
Инициализация кодека для кодирования выглядит так:
В некоторых из этих параметров легко допустить ошибку, что вызовет исключение при конфигурации кодека и нарушит работу приложения. Также при работе с кодеком может понадобиться регулировать его битрейт в зависимости от различных факторов, так как сам кодек делает это неправильно. За это в WebRTC отвечает класс BaseBitrateAdjuster, у которого есть два наследника:
Разрешение потока
После получения для кодека объекта MediaCodecInfo можно изучить кодек подробнее, получив его возможности в классе CodecCapabilities. Из них можно узнать, поддерживает ли кодек выбранные разрешение и частоту кадров. Если он поддерживает эти параметры, их можно устанавливать безопасно.
Однако иногда это правило не работает. Мы столкнулись с тем, что кодеки с префиксом “OMX.MARVELL.” кодировали неправильно, показывая зелёные полосы по краям экрана, если разрешение потока отличалось от 4:3. При этом сам кодек утверждал, что выбранные разрешение и частота кадров поддерживаются.
Режим битрейта
Стандартный режим для всех видеокодеков — постоянный битрейт. Однако однажды нам пришлось использовать переменный битрейт:
Произошло это на устройстве Lenovo A1000 с чипсетом компании Spreadtrum (теперь Unisoc), начинающимся с префикса “OMX.sprd.”. Поиск в Интернете привёл нас к посту шестилетней давности о Firefox OS, описывающему эту проблему и способ её решения.
Цветовой формат
При использовании кодека в режиме байт-буферов необходимо выбрать правильный формат. Обычно это делается с помощью функции следующего вида:
Грубо говоря, всегда выбирается первый из поддерживаемых цветовых форматов.
Однако в случае с кодеками HUAWEI, начинающимися с префиксов «OMX.IMG.TOPAZ.», «OMX.hisi.» и «OMX.k3.», это не работало, и после долгих поисков мы нашли решение: вне зависимости от того, какой формат возвращают эти кодеки, необходимо использовать формат COLOR_FormatYUV420SemiPlanar. Разобраться в этом нам помог тред на одном китайском форуме.
Регулировка битрейта
Стандартный код WebRTC содержит следующее:
Как видно из этого кода, для всех чипсетов, кроме Exynos, регулировка битрейта выключена. Но это относится только к Qualcomm, так как в стандартном коде поддерживаются только Exynos и Qualcomm. Поэкспериментировав с различными значениями этой настройки, а также поискав в Интернете, мы выяснили, что для кодеков с префиксами «OMX.MTK.» её тоже нужно включить. Также необходимо сделать это для кодеков HUAWEI, начинающихся с префикса «OMX.IMG.TOPAZ.», «OMX.hisi.» или «OMX.k3.». Это связано с тем, что эти кодеки не используют временные метки кадров для регулировки битрейта, считая, что все кадры приходят с одинаковой частотой, установленной при конфигурации кодека.
В завершение приведу список кодеков, которые мы получили для устройств на Android 5.0 и 5.1. Они были нам интересны в первую очередь потому, что на более новых версиях Android ситуация улучшается и нестандартных кодеков становится всё меньше.
Это видно на графике ниже. Шкала логарифмическая, чтобы лучше показать редкие случаи.
Как мы видим, у большинства устройств были чипсеты Spreadtrum, MediaTek, HUAWEI и MARVELL — поэтому наши изменения помогли включить аппаратное кодирование на этих гаджетах.
Результат
Хотя мы и предполагали, что на некоторых устройствах при работе с H.264 будут возникать проблемы, Android опять смог нас удивить. Как мы видим из статистики пользователей Badoo, на руках у пользователей ещё достаточно много устройств 2014–2016 года выпуска, которые они не хотят или не могут обновлять. И хотя ситуация с выходом обновлений Android для новых устройств уже гораздо лучше, чем несколько лет назад, доля гаджетов предыдущего поколения сокращается довольно медленно и поддерживать их придётся ещё достаточно долго.
Сейчас WebRTC активно развивается Google из-за его использования в проекте Stadia (вот видео с подробностями на эту тему), поэтому он будет становиться всё лучше и лучше и, скорее всего, станет стандартом для реализации видеосвязи. Надеюсь, что эта статья поможет вам понять особенности работы с H.264 в WebRTC и использовать это в своих проектах.
Чем открыть файл в формате H264 – конвертация видео из H264 в AVI и MP4
Разработчики мультимедийных плееров стараются делать свои продукты универсальными с тем, чтобы они воспроизводили как можно больше форматов. К сожалению, даже самые лучшие и известные мультимедиа-проигрыватели не могут охватить весь спектр видеоформатов, нередко качественно отличающихся друг от друга даже при использовании одного расширения. Больше всего проблем возникает со специальными или проприетарными форматами, для воспроизведения которых требуются особое ПО или, по меньшей мере, особые кодеки.
Что за формат H264 и где используется
Примером таких «трудных» форматов может послужить H264, разработанный специалистами ITU Video Coding Experts Group и используемый для сохранения видео в файл с наружных камер наблюдения и автомобильных видеорегистраторов. Помимо записи видеопотока формат H264 применяется для передачи видео в мобильных сетях. Использование h264 в камерах наблюдения обуславливается, прежде всего, превосходной компрессией данных, при которой даже продолжительное видео получается компактным и достаточно качественным.
Так, сжатое с помощью кодека H.264 видео будет занимать на диске почти в два раза меньше места, чем MPEG-4 того же качества. Это позволяет экономить интернет-трафик и место на физическом носителе, но есть у формата и свои недостатки, в частности, он более требователен к ресурсам записывающего устройства, чем тот же DivX или XviD. Другой недостаток – проприетарность. Несмотря на то, что файлы имеют одно расширение H264, их алгоритм кодирования может отличаться в зависимости от того, каким устройством они были записаны.
Программы для просмотра файлов в формате H264
Возникает резонный вопрос – как открыть файл h264 и какие программы для этого нужны. Соответствующее программное обеспечение обычно поставляется вместе с записывающими устройствами, если же видео было найдено вами в интернете, попробовать открыть формат h264 можно с помощью сторонних плееров. Попробовать, потому что нельзя дать стопроцентной гарантии, что видео таки откроется.
Рекомендуем установить x264 Video Codec – кодек, предназначенный для сжатия видео в формат H.264/AVC, а также пакет K-Lite Codec Pack Mega.
Default Player H.264
Проигрыватель видеофайлов формата Н264 от разработчика Shenzhen VStarcam Technology. Плеер оснащен простейшим файловым менеджером, конвертером h264 в AVI, поддерживается перемотка видео, воспроизведение аудио, ускоренный просмотр, захват стоп-кадров и вывод на печать. Из недостатков текущей версии следует отметить некорректное отображение картинки с отличными от стандартных пропорциями, изображение при этом может быть растянуто по вертикали.
VLC Player
Один из самых популярных и мощных медиаплееров, умеющих воспроизводить большинство известных мультимедийных форматов, к которым относится и H264/AVC. Способен открыть файл h264 с камер наблюдения, но не всех моделей, а вот кодированное H264/AVC видео с расширением MP4 плеер открывает без проблем. VLC Player имеет встроенный конвертер, с помощью которого видео можно преобразовать в более распространенный формат. Если сходу открыть h264 в VLC не удается, рекомендуется установка декодеров ffdshow tryouts, AC3Filter и Haali Media Splitter.
Datakam Player
Чем еще просмотреть файл h264 с видеорегистратора? Поищите в интернете специальное приложение Datakam Player, он же Registrator Viewer. Является альтернативой плеерам, поставляемым вместе с автомобильными регистраторами, поддерживает воспроизведение видео, записанного с помощью DATAKAM, DOD, ProCam, CamBox, Papago, Digma, xDevice, AdvoCam и многих других устройств. Возможности плеера включают работу с картами, масштабирование видео и покадровый просмотр, поиск и группировку файлов.
Десктопные программы для конвертирования H264 в AVI
Если видео H264 нужно выложить в интернет для свободного доступа, его желательно сконвертировать в AVI или MP4, чтобы не создавать скачавшим его пользователям трудностей с просмотром. Для этого можно использовать следующие программы-конвертеры.
RipBot264
Бесплатный конвертер, предназначенный для преобразования разных форматов между собой. Программа заточена под конвертирование видео в форматы, поддерживаемые мобильными устройствами, но может использоваться и для преобразования H264. Относительно прост, удобен, позволяет настраивать битрейт, FPS и другие параметры видео, поддерживает распределенное кодирование с использованием серверов локальной сети. Для работы требует установки ffdshow tryouts, Haali Media Splitter, программы AVisynth и компонента Net Framework.
AVS Video Converter
Мощный видеоконвертер со встроенными кодеками и широкой поддержкой мультимедийных форматов, включая H264. Отличается гибкостью настроек, позволяет изменять параметры преобразуемого видео, добавлять меню, субтитры и прочие элементы. В использовании программа проста – в поле «Исходный файл» перетаскиваем H264-видео, на вкладке «Форматы» выбираем предпочитаемый формат и жмем кнопку «Старт».
Онлайн-конвертеры H264 в AVI
Преобразовать записанное камерой наблюдения или видеорегистратором видео можно также с помощью онлайн-сервисов. Способ удобен тем, что не требует установки на компьютер сторонних программ и дополнительных кодеков.
Online-Convert.com
Популярный в Рунете онлайновый конвертер файлов. Нельзя сказать, чтобы он был заточен под работу только с видео, но формат H264 он поддерживает и это главное. Конвертирование может выполняться с настройками по умолчанию или с элементами редактирования. Сервис позволяет изменять размер видео, его битрейт, поддерживает удаление звуковой дорожки, обрезку, поворот по вертикали и горизонтали. Имеется также возможность выбора кодека. В качестве выходного формата можно выбрать AVI, MKV, MOV, MP4, 3GP, 3G2, FLV и MPEG.
Online-Converting.ru
Похожий по функционалу сервис, который также можно использовать как конвертер H264 в AVI онлайн. Поддерживает изменение размера, битрейта и FPS видео, кадрирование и реверс. Кроме AVI, загруженное видео можно преобразовать в GIF, WMV, OGG, MOV, MKV, MP4 и WEBM.