Не базовый видео профиль AVC не поддерживается ОС Android - PullRequest
1 голос
/ 19 июня 2019

Я использовал плагин " cordova-plugin-video-editor ", чтобы уменьшить размер / качество моих видео перед их загрузкой на сервер.

Плагин работает правильнона большинстве телефонов с Android и без проблем на iOS.

Но на последних телефонах с Android случается, что он дает сбой.Я воспроизвожу эту ошибку с помощью Xiaomi RedMi Note 7 под Android 9.

У меня есть эта ошибка:

net.ypresto.androidtranscoder.engine.InvalidOutputFormatException:

Необоснованный профиль видео AVC не поддерживается ОС Android, фактический идентификатор профиля: 100

Вот характеристики видео:

H264 - MPEG-4 AVC (part10)(avc1)
1920x1080
Planar 4:2:0 YUV
ITU-R BT.601 (50 Hz)

MPEG AAC Audio (mp4a)
48000Hz
32bits

После нескольких поисков я не могунайти решение, но все же некоторые выводы, такие как:

Сегодня я не могупришел к любому другому выводу, кроме необходимости создания собственного плагина для использования другой библиотеки Android, совместимой с новыми видеоформатами.Я должен признать, что мне не очень нравится это решение, и поэтому я обращаюсь к сообществу.

Как вы думаете, у вас есть какая-либо дополнительная информация по этой проблеме, которая может мне помочь?

Большое спасибо.

Решено с помощью:

Это была действительно зависимость от плагина, которая не была совместима с новыми кодеками.

Так что я подключаю плагин к своему github изатем измените часть кода, которая перекодирует видео.Теперь я использую эту библиотеку вместо старой: https://github.com/tangpeng/VideoCompressor

Вы можете увидеть изменения в коммитах этого репо: https://github.com/Eblancho/cordova-plugin-video-editor

Я не советую вам использовать ее дляваши проекты, потому что он не на 100% протестирован / совместим со всеми телефонами, это очень недавнее изменение.

В дополнение к этому, в отличие от предыдущей версии, которая позволяла выбирать высоту / ширину, битрейт и другиевещи, моя версия расчеты:

newHeight = videoHeight / 2;
newWidth = videoWidth / 2;
bitrates = (newHeight / 2) * (newWidth / 2) * 10;

Если у вас есть какие-либо комментарии или вопросы по поводу моего кода, не стесняйтесь спрашивать его.

Но возникла новая проблема:

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

Теперь, когда я открываю камеру для записи моего видео, как только я захочу закрыть намерение вернуться к основной активности Cordova, приложение перезапустится.

Не думаю, что это действительно тема для обсуждения, поэтому я собираюсь создать новуюw обсуждение, чтобы лучше отделить мои проблемы.

...