MediaController/VideoView не может воспроизводить mp4 на некоторых телефонах

В своем приложении я создаю видео из изображений, которые пользователь сделал с помощью Ffmpeg. Я играю в это, используя MediaController и VideoView. Когда я запускаю приложение с помощью эмулятора Genymotion для Google Nexus 4, видеофайл воспроизводится без проблем. Когда я использую эмулятор Genymotion для Samsung Galaxy S4, я получаю сообщение об ошибке от VideoView при прослушивании ошибок: «Не удается воспроизвести видео».

Спасибо за вашу помощь.


person Nicholas Muir    schedule 14.01.2016    source источник
comment
Отображение фактической команды ffmpeg и полного вывода консоли будет информативным.   -  person llogan    schedule 14.01.2016


Ответы (2)


Преобразование видео с помощью ffmpeg отлично сработало для моего приложения. Надеюсь, это поможет:

ffmpeg -i old.mp4 -c:v libx264 -profile:v baseline -level 1 -strict -2 new.mp4

Я нашел эту строку кода где-то еще на Stack Overflow, но, к сожалению, не смог отследить, где именно. Так что, если кто-то наткнется, дайте ссылку сюда. В исходной команде не было -strict -2.

person Martin Becker    schedule 29.08.2017

Просто потому, что расширение .mp4 не может гарантировать, что оно будет воспроизведено MediaPlayer. Если это не поддерживаемая кодировка, она не будет воспроизводиться. Ознакомьтесь со всеми форматами мультимедиа, поддерживаемыми Android, здесь.

Поэтому проанализируйте свой код и найдите тип кодирования, который использует ваше видео. Кроме того, если вы ищете более мощный способ воспроизведения видео, вы также можете попробовать Google Exoplayer, здесь .

person OBX    schedule 14.01.2016
comment
Привет @oblivion, Да, я проверил эту ссылку перед публикацией, и все должно быть в порядке в соответствии с предписанными кодеками. Я проверю Exoplayer спасибо. - person Nicholas Muir; 14.01.2016
comment
И всегда тестируйте приложение на реальном устройстве, чтобы что-то подтвердить! Удачного кодирования :) - person OBX; 14.01.2016