来自视频文件的简单图像采集卡[重复]
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
【讨论】:
以上是关于来自视频文件的简单图像采集卡[重复]的主要内容,如果未能解决你的问题,请参考以下文章