将directshow流异步播放到合成输出中
Playing directshow streams asynchronously into composited output
我是DirectShow新手。我正在尝试让DirectShow播放一组媒体文件,但不能同时播放。
我尝试分配一个图,并使用RendeFile将每个文件添加到其中,但当我调用IMediaControl::Run时,它们都会同时开始播放。
我试着为每个文件分配一个图和一个IMediaControl,然后在每个文件的不同时间调用Run。这是有效的,流独立播放。
如何将流组合到输出窗口?
有没有可能有一个主表面,其他流在其上渲染成矩形?
既然流不在同一个图中,那能做到吗?
曲面或输出使用什么?
感谢
所有过滤器都应该一起更改图中的状态,因此您确实需要为每个文件提供一个单独的图,以便独立于其他文件进行回放。
如果你想简单地并排播放文件,没有效果和重叠等,最简单的选择是使用单独的视频渲染器,并将它们用作控件,在你的UI中正确定位。
如果你想要更复杂的东西,那么有两种方法可供选择:你可以使用Sample Grabber或类似的过滤器从DirectShow过滤器图中取出解压缩的视频/音频,然后你自己负责用其他API呈现数据。或者,您实现了一个自定义分配器/呈现器(也称为视频渲染器的无渲染操作模式),并精细地控制视频的输出,这特别允许将帧放入纹理或屏幕外表面,将呈现本身留给您。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 在 OpenCV 中播放视频:无错误无输出
- 在Raspberry Pi模拟输出上接收和播放原始PCM的ALSA配置
- 将directshow流异步播放到合成输出中
- 想知道我的代码有什么问题?一旦播放器名称达到 100,应该输出获胜者,但在之后再次循环
- 如何使用ffmpegc API对H.264视频进行编码,然后用媒体播放器打开输出