从视频

时间:2016-02-25 14:13:28

标签: android video ffmpeg javacv

我正在编写视频处理应用程序并且遇到了一些麻烦。

我们的想法是从视频文件中提取帧(图像),在GPU上处理它们,然后将它们写回新的视频文件。

到目前为止,我已成功使用JavaCV执行此操作。

唯一的问题是提取帧需要非常长的时间(在200ms区域内)。这是很多,因为增加了GPU处理时间和写入新文件所需的时间,它导致每帧的总进程持续时间约为700毫秒。

这就是我抓住框架的方式:

 FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(videoLocation);
 frameGrabber.start();

 frameGrabber.setFrameNumber(frameNumber);
 frame = frameGrabber.grabImage();

非常标准,没什么特别的,而且很有效。我能够处理帧,将其转换为位图等...

正如我之前所说,底部的两条指令(设置帧编号和抓取图像)需要很长时间。编写帧也需要相当多的时间。

如果有人对此问题有任何意见,我将不胜感激。也许我没有正确设置,也许还有另一种更快的解决方案。

0 个答案:

没有答案