【发布时间】:2014-02-22 14:12:45
【问题描述】:
我正在尝试借助 VideoView.seekTo(positionMs) 寻找视频中的特定位置。 因此,在查找操作期间,在这种情况下,查找是在给定的持续时间内对最近的关键帧进行的。例如,如果用户搜索到 27 秒并且最近的关键帧是在第 13 秒,那么搜索将在第 13 秒而不是第 27 秒完成。请建议我如何解决这个问题。
【问题讨论】:
我正在尝试借助 VideoView.seekTo(positionMs) 寻找视频中的特定位置。 因此,在查找操作期间,在这种情况下,查找是在给定的持续时间内对最近的关键帧进行的。例如,如果用户搜索到 27 秒并且最近的关键帧是在第 13 秒,那么搜索将在第 13 秒而不是第 27 秒完成。请建议我如何解决这个问题。
【问题讨论】:
首先,keyframes 在任何视频中都不能相隔那么长时间,除非您对视频进行了重新编码和编辑。你说得对,当我们使用 seekTo() 时,我们会找到最近的关键帧,但大多数时候这不是明显的差异。
关于视频缺少关键帧的问题,您可以手动重新编码视频并添加关键帧。您可以使用Ffmpeg 或任何此类工具进行编码。如果您需要更多指导和帮助,请查看this。但大多数情况下,not 是必要的,因为您描述的场景很少出现在原创视频中。
希望它有所帮助。干杯。:)
【讨论】:
我认为'seekTo'向后关键帧和编码到准确的位置,忽略无用的部分是一个想法。 正如 BlueSword 所说,“seekTo”不是到达正常帧所必需的。 因此可能需要自定义视频播放器。 您应该自己处理解码数据。
【讨论】: