逐帧显示视频

本文关键字:视频 显示 | 更新日期: 2023-09-27 18:20:55

使用WPF制作的视频播放器访问视频的单个帧速率、能够逐步浏览视频的帧并设置某种帧缓冲区以预加载后续帧的最简单方法是什么?我知道DirectShow,但它似乎对那些想修改视频帧的人更有用。我只想能够一帧一帧地浏览视频,导航到特定的帧,并规范化同时播放的多个视频的帧速率(例如,分别为10帧/秒、20帧/秒和30帧/秒的三个视频将以10帧/帧的速度同时播放)。

逐帧显示视频

实际上这不是一个容易的问题。我建议使用可用的directshow过滤器来读取文件数据,并将其传递给解压缩器过滤器(因为我认为您的视频不是像YUV那样的原始格式),链接到采样采集器。

示例抓取器将为您提供解压缩的原始图像,您可以使用Image类来显示JPEGS。

要根据帧速率同步帧,当捕获采样帧时,可以获得该特定时间戳的显示时间。这就是无论帧速率如何,都可以同步视频的方式。呈现时间是一个时间戳,指示该帧应该何时显示。每个视频都会给你一个不同的视频,你可以根据这个决定谁应该被显示。

就缓存而言,您可以在一些解码器过滤器上进行搜索。windows附带的MPEG2解码器会暴露

IMediaSeeking 

你应该能够给它回电话,告诉它寻找一个新的时间。

我建议使用类似graphedit的东西来测试你的过滤器结构