1

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

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

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) 

ответ

0

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

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