4

我正在开发一个功能,单击下一步按钮,然后暂停视频将搜索下一部分并开始。例如,当 video.getCurrentPosition 为 8000 时,我单击按钮使视频搜索到(10000),因为视频在 8000 之间显示相同的内容和 10000。

此功能在部分安卓设备上运行流畅,如Samsung s6 edge,OnePlus,Xiaomi,Smartison...

但问题是在某些设备上,例如华为,Moto Nexus 6,当我在 8000 上播放视频并单击按钮时,它有一些“ delay time”。看起来大约 1 秒。后来,视频终于开始了。

相比之下,我特意改了seekto(10200),这是错误的参数,这些“问题设备”运行流畅,就像“正常设备”一样。然而,上一个“ normal devices”的视频跳过了一些帧,从10200开始。

有谁知道为什么会导致这个问题?希望你的回答,谢谢。

4

1 回答 1

0

视频是使用编码的h264吗?正如对此 SO question 的评论中mpeg4所建议的那样,使用编解码器重新编码已为我解决了 Android 行为非常奇怪的问题。seekToViewView

要检查编码并重新编码,您可以使用ffmpeg.

$ ffprobe <inputfile> ... ... Stream #0:0(eng): Video: h264 ... ... 这表明文件是使用 编码的h264,它是更新的,并且通常在与 相同的比特率下产生更好的质量mpeg4,但(可能因此)更难搜索,至少对于 Android 而言VideoView

编码mpeg4如下对我有用,但wikiffmpeg更多细节。

$ ffmpeg -i <inputfile> -c:v libxvid <outputfile>

于 2017-05-17T01:23:44.493 回答