android MediaPlayer:错误(1,-2147483648)

时间:2015-07-01 14:31:39

标签: android video-streaming android-mediaplayer android-videoview transcoding

我有一个视频播放器片段,可以使用视频和媒体播放器播放视频。我有用相机录制的视频。我正在将视频从flv flavor转换为mp4风格,以便我可以在我的移动应用程序上运行它们。我检查了我的应用程序播放mp4视频(示例视频),它正在播放完美,但当我将flv视频转码为mp4时,mp4版本也在浏览器和VLC媒体播放器上运行,但不在我的Android应用程序中。它显示视频的错误长度(显示视频长度为8分钟视频的87.15分钟)我看到导引头移动但是再次看不到播放器中的任何内容,也没有听到任何声音。以下是转码和发布到转码之前视频的ffmpeg信息以及错误log.i可以看到错误 MediaPlayer:错误(1,-2147483648)被引发。我检查了stackoverflow上的错误,并且谷歌建议MOOV原子到位。

请帮助.......

转码前

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)

1 个答案:

答案 0 :(得分:0)

视频播放故障排除可能会非常令人沮丧,它经常涉及大量的反复试验。我建议开始的第一个地方是更改转码视频的H264配置文件。目前,它使用的是“High 10”的源配置文件,但是,大多数Android版本仅支持H264 Baseline和Main Profile开箱即用(请参阅Android的Supported Media Formats)。

可以在here找到在FFMPEG中指定配置文件的语法。通过在输出参数中添加-profile:v baseline -level 3.0,可以从Baseline Level 3.0配置文件开始。