2014-08-31 58 views
2

快速播放我想播放一个大型视频(1080P 30fps的,〜100K帧)内MATLAB,这样我可以:Matlab的:大型视频

  • 播放/暂停视频
  • 跳到一个给定的帧号
  • 获得当前帧号

这样做的目的是为了在一个简化的方式标注有(全局)帧标签每个视频帧。

为了实现这一点,我曾尝试:

  • VideoReader:快速重放(〜30fps)的,慢缓冲(〜5帧,存储器限制)
  • vision.VideoFileReader:慢速播放(< 5fps的),流媒体(没有/最小缓冲?)
  • imread/imshow(遍历图像序列):慢速播放< 5fps的),流

我使用的OS X的Matlab的R2014a 64位

我可以使用另一种方法不显著缓冲开销获得快速播放(〜30fps)的?

+0

你是完全以编程方式完成此注释,部分是用户输入,还是完全手动完成?这是否意味着您修改了视频数据,或者您是否需要查找给定的帧并将其位置保存到数组或甚至是外部文件? “缓冲”是什么意思?此外,是'imread' /'imshow'选项你自己的代码?我想知道在实施中是否会出现性能问题? – horchler 2014-08-31 13:12:28

+1

你可以使用外接播放器吗? [QuickTime Player 7](http://support.apple.com/kb/DL923?viewlocale=zh_CN&locale=zh_CN)(经典播放器,而不是较新的内置版本)可以显示帧编号并允许您跳转到特定的框架。点击左下角的时间码,然后从下拉菜单中选择“帧号”。然后,您可以输入帧号字段以跳转到特定的帧。选择播放头,箭头键将允许您增加和减少帧号。 – horchler 2014-08-31 13:14:52

+0

感谢horchler的评论。注释完全是手动驱动的,但我想在流程周围构建一个简单的UI,以防止/减少人为错误,并允许使用标签回放来验证正确的标签。视频数据未被修改 - 标签被导出到外部文件。 “缓冲”是指在显示之前在存储器中预加载帧。我正在调用内置于Matlab的图像处理工具箱中的imread/imshow函数。从性能分析来看,这些功能存在瓶颈。 – Josh 2014-08-31 14:05:39

回答

0

阅读视频的速度取决于视频格式。如果您使用Motion JPEG视频,则可以加快vision.VideoFileReader的速度。

另一个问题是回放。你在用什么?你有没有试过vision.VideoPlayer?也有vision.DeployableVideoPlayer,这可能会更快,但它只适用于Windows。