Формат кодирования видео h264 не поддерживается на телефоне что делать
Как исправить ошибку неподдерживаемого аудио-видео файла на 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, например:
Как исправить видео, которые не воспроизводятся на телефоне Android
Попробуйте следующие методы для воспроизведения видео на своем телефоне Android. Вы можете применить эти методы, чтобы исправить проблему «видео не воспроизводится» на любом телефоне Android, таком как Samsung, Xiaomi, Motorola, HTC и т. д.
1. Перезагрузите / перезагрузите ваше устройство.
Перезагрузка смартфона — это самый простой способ устранения неполадок, который может помочь при воспроизведении видео. Закройте все приложения на своем мобильном телефоне. Перезагрузите / перезагрузите телефон. Затем перейдите в галерею и проверьте, воспроизводятся ли ваши видео или нет.
2. Очистите кеш на телефоне Android.
Кэшированные данные необходимы для сокращения времени загрузки, но очистка кеша также важна как часть устранения неполадок для решения ряда проблем, которые могут возникнуть из-за поврежденных данных кеша.
Чтобы очистить данные на вашем смартфоне, выберите «Настройки»> «Хранилище / Диспетчер приложений»> «Очистить кеш». Теперь вернитесь в галерею, чтобы воспроизвести видео.
3. Удалите с мобильного телефона небезопасные приложения.
Трояны также представляют опасность для ваших телефонов Android. Если вы загрузили какое-либо приложение или программное обеспечение из ненадежного источника, удалите его.
Есть вероятность, что это нарушает бесперебойную работу вашего мобильного устройства, в том числе не позволяет вам воспроизводить мобильные видео или же делает ваши видео поврежденными.
4. Установите VLC player / MX Player на телефон Android.
Возможно, медиаплеер на вашем телефоне Android не поддерживает видеокодек, который вы пытаетесь воспроизвести. Установите совместимый видеоплеер, например VLC player, BS Player или MX Player, из магазина приложений Android.
5. Обновите ОС Android.
Обновите ОС Android, чтобы исправить проблемы с воспроизведением видео. Перед обновлением ОС Android рекомендуется всегда создавать резервные копии своих мобильных данных, таких как контакты, фотографии, видео и т. д.
Хотя обновление ОС не приводит к потере данных, любой технический сбой во время процесса может привести к потере или повреждению информации о вашем мобильном телефоне. Так что лучше перестраховаться, чем потом каяться.
Как обновить ОС Android в мобильном телефоне
После завершения установки ваш мобильный телефон автоматически перезагрузится.
6. Удалите сомнительное программное обеспечение.
Иногда может случиться так, что вы не сможете воспроизводить видео на своем устройстве Android, так как вы установили какое-то незащищенное приложение откуда-то еще, кроме официального магазина приложений.
Такое незащищенное приложение способно блокировать воспроизведение видео на вашем устройстве Android, всегда рекомендуется удалить его.
7. Получите звездный ремонт для видео
Если вы можете воспроизводить некоторые видеофайлы на своем телефоне Android, проблема не в устройстве или медиаплеере. Ваши видео файлы могли быть повреждены.
Он полностью безопасен для загрузки и не содержит вредоносных программ или троянов. Вы можете исправить ваши видео, которые стали прерывистыми, отрывистыми, размытыми или не синхронизированными.
Бесплатная демонстрационная версия программного обеспечения достаточно хороша для оценки возможности решения проблемы повреждения видео.
Исправьте видео, которые не воспроизводятся на телефоне Android, используя Stellar Repair for Video
Таким образом, всего за несколько простых кликов мышью — «Добавить», «Восстановить», «Предварительный просмотр» и «Сохранить» вы сможете снова воспроизвести поврежденные видео.
Программное обеспечение поддерживает восстановление большинства популярных форматов видеофайлов, таких как видеофайлы AVI, ASF, WMV, MKV, FLV, DIVX, WEBM, MJPEG, MPEG, AVCHD, MTS, MOV, MP4, M4V, 3G2, 3GP и F4V.
Он может исправить поврежденные или не воспроизводимые видео, хранящиеся на карте microSD любого телефона Android, карте microSDHC или карте microSDXC и т. д.
После ремонта либо сохраните видео на своем компьютере, либо на карте памяти microSD, либо перенесите их на свой телефон Android.
8. Сбросьте настройки приложения.
Сброс настроек вашего приложения позволяет вам выбрать, какой видеопроигрыватель вы хотите использовать для воспроизведения видео.
Как сбросить настройки приложения на телефоне Android?
Теперь попробуйте воспроизвести видео на телефоне Android.
9. Сбросьте настройки смартфона до заводских.
Если ни один из вышеперечисленных методов не может воспроизводить видео на вашем телефоне Android, последним средством является восстановление заводских настроек.
Восстановление заводских настроек стирает все данные и отображает ваш смартфон как новый. Таким образом, перед этим убедитесь, что вы сделали резервную копию всех своих контактов, фотографий, видео и других данных смартфона.
Не можете воспроизводить Facebook, YouTube или другие веб-видео на своем телефоне Android? Попробуйте следующие исправления:
Подводить итоги
В основном проблема «видео не воспроизводится» на Android решается путем очистки кеша или перезагрузки смартфона. Однако, если мобильный видеофайл поврежден, рекомендуется использовать Stellar Repair for Video. Эта программа представляет собой эффективную утилиту для восстановления видео, которая исправляет все виды повреждений. Вы можете восстановить несколько поврежденных видео за раз, сэкономив много времени.
Так что теперь не нужно беспокоиться о том, что видео не воспроизводятся на телефоне Android. Попробуйте описанные выше методы и снова смотрите видео на своем мобильном телефоне Android.
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.