0

我想为我的 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

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

4

2 回答 2

1

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

Video source -> Sample grabber filter -> Video renderer

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

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

于 2011-11-09T19:32:29.683 回答
0

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

于 2011-11-09T15:42:56.347 回答