来自视频文件的简单图像采集卡[重复]

Posted

技术标签:

【中文标题】来自视频文件的简单图像采集卡[重复]【英文标题】:Simple frame grabber from video file [duplicate] 【发布时间】:2011-11-09 15:29:46 【问题描述】:

我想为我的 C++ 项目找到一个简单的库,它可以通过视频和音频解码启动线程并且我可以抓取一些帧? 我尝试在示例代码中解释我对 lib API 和行为的期望:

player = new Player("video.avi");
player->Play();   // lib start video decoding into internal hidden buffer 
                  // and audio decoder start play sound from video file
.....
buffer = new ....
player->SyncCopyCurrentFrameIntoBuffer(buffer);   // copy last decoded frame into buffer
....
play->Pause();    // lib freeze video and audio decoding

可能有人可以推荐我一些东西吗? (赢)

【问题讨论】:

【参考方案1】:

DirectShow 是一种 MS 技术,可让您创建由一堆过滤器(如源、编码器、解码器、颜色转换器、渲染器等)组成的媒体管道。在 DirectShow 中,您可以创建如下所示的图形

Video source -> Sample grabber filter -> Video renderer

然后您可以播放和暂停图表。 sample grabber 过滤器允许您配置一个回调,该回调在每个样本通过媒体管道时触发。

请注意,DirectShow 并不是最容易学习的框架。但是,一旦掌握了窍门,您想要完成的任务就很容易完成。 DirectShow 需要良好的 C++ 知识和一些 COM(在 MSDN 文档中解释)。主要支持是通过 MSDN 文档,该文档非常广泛和 MS DirectShow 论坛。

【讨论】:

【参考方案2】:

也许您想看看 libavcodec(或更一般地说,ffmpeg 包)?更多信息http://ffmpeg.org

【讨论】:

以上是关于来自视频文件的简单图像采集卡[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用java执行ffmpeg命令进行推流操作

使用多线程处理和保存图像

Openframeworks,从两个视频采集器创建视频纹理

1394采集视频文件大于4G自动切割

虚幻UE4中如何采集360度全景图片和VR视频

TX1使用OpenCV3.1实时采集视频图像