我有一个视频播放器片段,可以使用视频和媒体播放器播放视频。我有用相机录制的视频。我正在将视频从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)
答案 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配置文件开始。