Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法播放某些视频_Android_Video_Video Processing_Video Encoding_H.264 - Fatal编程技术网

Android 无法播放某些视频

Android 无法播放某些视频,android,video,video-processing,video-encoding,h.264,Android,Video,Video Processing,Video Encoding,H.264,我正在尝试从我们的服务器在Android设备上播放电影。它不是一个媒体服务器,只是一个普通的Apache服务器。我们使用相同的API访问iPhone上的视频,效果很好 在安卓设备上,某些视频可以工作,而另一些则不行。它们都是以相同的方式创建的,除了大多数不起作用的是由静态图像和音频组成的 我们已经尝试用Videora重新编码它们,并尝试用MP4Box提示它们。存储在SD卡上时,所有视频都可以完美播放。我们也尝试过先将视频从服务器下载到SD卡,将其保存为文件,然后从文件中播放,但这也不起作用 帮助

我正在尝试从我们的服务器在Android设备上播放电影。它不是一个媒体服务器,只是一个普通的Apache服务器。我们使用相同的API访问iPhone上的视频,效果很好

在安卓设备上,某些视频可以工作,而另一些则不行。它们都是以相同的方式创建的,除了大多数不起作用的是由静态图像和音频组成的

我们已经尝试用Videora重新编码它们,并尝试用MP4Box提示它们。存储在SD卡上时,所有视频都可以完美播放。我们也尝试过先将视频从服务器下载到SD卡,将其保存为文件,然后从文件中播放,但这也不起作用

帮助将是惊人的。我非常困惑。 谢谢

编辑-Logcat:

01-19 08:19:12.669: DEBUG/MediaPlayer(1878): Couldn't open file on client side, trying server side

01-19 08:19:14.119: INFO/ActivityManager(1172): Displayed activity com.myproject/.VideoClass: 1966 ms (total 1966 ms)

01-19 08:19:15.779: ERROR/PlayerDriver(1071): Command PLAYER_INIT completed with an error or info UNKNOWN PVMFStatus

01-19 08:19:15.789: ERROR/MediaPlayer(1878): error (200, -32)

01-19 08:19:15.789: ERROR/MediaPlayer(1878): Error (200,-32)

01-19 08:19:15.789: DEBUG/VideoView(1878): Error: 200,-32

01-19 08:19:15.849: WARN/PlayerDriver(1071): PVMFInfoErrorHandlingComplete
更新: 这里是三个不同视频的视频分析粘贴箱。 应用程序上的第一个流来自服务器。 第二个视频不会流式播放,但可以下载,然后从设备播放。 第三个不能流式播放或下载播放。


WTF

我遇到了同样的问题,在最初放弃之后,我找到了解决办法

我偶然发现了下一页 其中指出:

对于3GPP和MPEG-4容器,moov原子必须位于任何mdat原子之前,但必须位于ftyp原子之后

在做了一些挖掘之后,我发现这正是问题所在。从某些安卓手机(我相信2.3之前版本)录制的视频将moov atom放在文件的末尾。这使得它们无法流动。一些谷歌搜索会告诉你这是MP4文件和flash播放器的常见问题,因为它们是用来流式播放视频的

MediaPlayer中甚至有一个特定的错误代码(但我没有看到这些记录) MediaPlayer#媒体错误(无效)用于渐进式播放

我的解决方案是通过一个外部工具运行视频文件,将moov原子移动到起点。我最终使用了MP4Box:和命令

MP4Box -inter 500 original.mp4 -out fixed.mp4

希望这能帮助别人

在它不起作用后,我尝试了几种不同的方法,但最初是H.264。@Jai:Use
adb logcat
,DDMS,或Eclipse中的DDMS透视图来检查LogCat,并查看是否收到任何与视频播放相关的警告。^我已添加了从LogCat收到的错误消息。Apache服务器上扩展名为.mp4的文件使用哪种MIME类型?你能在电脑上下载并播放该文件吗?没有设置。应该是什么?当一组动画编码相同时,这如何影响一组动画的工作而不影响其他动画?