Ошибка android MediaPlayer (1, -2147483648)

У меня есть фрагмент видеоплеера для воспроизведения видео с помощью просмотра видео и медиаплеера. у меня есть видео, записанные на камеру. Я перекодирую видео из формата flv в формат mp4, чтобы я мог запускать их в своем мобильном приложении. Я проверил свое приложение для воспроизведения видео в формате mp4 (образец видео), и оно воспроизводится отлично, но когда я перекодирую видео в формате flv в mp4, версия mp4 также запускается в браузере и медиаплеере VLC, но не в моем приложении для Android. Он показывает неправильную длину видео (длина видео составляет 87,15 минут для 2-минутного видео). Я вижу, как ищущий движется, но снова ничего не вижу в плеере и не слышу звука. Ниже приведена информация ffmpeg о видео до перекодирования и публикации для перекодирования, а также журнал ошибок. Я могу увидеть возникшую ошибку MediaPlayer ﹕ error (1, -2147483648). Я проверил ошибку stackoverflow, и атом MOOV находится на месте, как было предложено Google.

Пожалуйста помоги.......

информация ffmpeg перед перекодированием

Input #0, flv, from '03c82713-f369-462c-b59a-   777a98fb12cc1435052031199':
Metadata:
encoder         : Lavf56.25.101
Duration: 00:03:54.57, start: 0.000000, bitrate: 211 kb/s
Stream #0:0: Video: h264 (High), yuv420p, 688x360, 1000 kb/s, 30.30   fps, 30 tbr, 1k tbn, 60 tbc
Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s

Информация ffmpeg после перекодирования

 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'eb7e2f00-c61f-4308-8c86-   222868c03c131435746544880.mp4':
 Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf56.25.101
Duration: 00:01:15.55, start: 0.036281, bitrate: 344 kb/s
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
  handler_name    : SoundHandler
Stream #0:1(und): Video: h264 (High 10) (avc1 / 0x31637661), yuv420p10le, 426x240, 208 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
  handler_name    : VideoHandler

Трассировка стека ошибок

07-01 19:46:26.501  22067-22067/com.project.test1.android     E/MediaPlayer﹕ Should have subtitle controller already set
 07-01 19:46:26.785  22067-22160/com.project.test1.android      E/MediaPlayer﹕ error (1, -2147483648)
07-01 19:46:26.791  22067-22067/com.project.test1.android     E/MediaPlayer﹕ Error (1,-2147483648)
07-01 19:46:31.651  22067-22067/com.project.test1.android E/MediaPlayer﹕ Attempt to call getDuration without a valid mediaplayer
07-0    1 19:46:31.651  22067-22067/com.project.test1.android E/MediaPlayer﹕ error (-38, 0)
07-01 19:46:31.662  22067-22067/com.project.test1.android E/MediaPlayer﹕ Error (-38,0)
07-01 19:46:31.684  22067-22067/com.project.test1.android     E/MediaPlayer﹕ Attempt to call getDuration without a valid mediaplayer
 07-01 19:46:31.684  22067-22067/com.project.test1.android E/MediaPlayer﹕ error (-38, 0)
07-01 19:46:31.692  22067-22067/com.project.test1.android E/MediaPlayer﹕ Attempt to call getDuration without a valid mediaplayer
07-01 19:46:31.692  22067-22067/com.project.test1.android E/MediaPlayer﹕ error (-38, 0)
 07-01 19:46:31.708  22067-22067/com.project.test1.android E/MediaPlayer﹕ Error (-38,0)
 07-01 19:46:31.708  22067-22067/com.project.test1.android     E/MediaPlayer﹕ Error (-38,0)

person Pawan Rawat    schedule 01.07.2015    source источник


Ответы (1)


Устранение неполадок при воспроизведении видео может быть очень неприятным, это часто связано с большим количеством проб и ошибок. Первое, с чего я бы порекомендовал начать, - это изменить профиль H264 перекодированного видео. В настоящее время он использует исходный профиль «High 10», однако большинство версий Android «из коробки» поддерживают только базовый и основной профиль H264 (см. Android Поддерживаемые форматы мультимедиа).

Синтаксис для указания профиля в FFMPEG можно найти здесь. Хорошее место для начала - это профиль базового уровня 3.0, добавив -profile:v baseline -level 3.0 к вашим выходным параметрам.

person mshish    schedule 05.07.2015