社区
多媒体/流媒体开发
帖子详情
DShow 菜鸟初问:怎么用 VMR 实现多路视频图象的叠加?。。
jessiepan
2006-12-08 01:59:29
我已经用 VMR 实现了一路视频图象的输出(视频源为多媒体文件),现在想同时打开两个视频文件,然后用VMR实现两路视频图象的叠加。该怎么做呢?
...全文
397
13
打赏
收藏
DShow 菜鸟初问:怎么用 VMR 实现多路视频图象的叠加?。。
我已经用 VMR 实现了一路视频图象的输出(视频源为多媒体文件),现在想同时打开两个视频文件,然后用VMR实现两路视频图象的叠加。该怎么做呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jessiepan
2007-01-17
打赏
举报
回复
我是楼主。 怎么高手都不愿意出来帮帮手啊? 哎, :( 自己搞不定呢
IVMRMixerBitmap 用它来叠加中文字摹的时候,怎么改变中文的字体呢?比如:什么黑体、楷体、仿宋体等等。。。 又或是改变中文字摹的大小,比如:一号、二号、三号、四号、小四等等。。 像WORD里那样的处理 。 还有,怎么改变叠加的位置?比如:在左上角、左下角、右上角、右下角的。。
谢谢啊!~~~ 分不够,可以再加呢
jessiepan
2007-01-08
打赏
举报
回复
lserlohn() ( ) 信誉:100 Blog 2006-12-15 16:30:33 得分: 0
是这样的,单纯的叠加字幕很简单,但是如果考虑到时间同步,那就很复杂了。能否考虑用现成的叠加字幕的filter,就是看电影老用的那种〉?
==================================================================
lserlohn() ,谢谢!单纯的叠加字幕我已经实现了,是用这个IVMRMixerBitmap 来做的吧?。。 我现在想实现叠加系统的实时时间(动态的),该怎么做呢?
请各位老鸟帮帮我这个菜鸟 :) 谢谢先!
jessiepan
2007-01-05
打赏
举报
回复
heliang1108() ( ) 信誉:100 Blog 2006-12-15 15:29:54 得分: 0
添加字幕就是自己对视频数据进行操作,把字幕加上去不就好了?
================================================================
大哥,我说了我是DSHOW方面的菜鸟,感觉您说的这段话跟没说一样啊:( 哎!您的意思是要自己接管视频数据?那不是要自己写个 filter 么??
不过,还是谢谢你了!继续问我的问题。。。
lserlohn
2006-12-15
打赏
举报
回复
是这样的,单纯的叠加字幕很简单,但是如果考虑到时间同步,那就很复杂了。能否考虑用现成的叠加字幕的filter,就是看电影老用的那种〉?
何亮-1108
2006-12-15
打赏
举报
回复
添加字幕就是自己对视频数据进行操作,把字幕加上去不就好了?
jessiepan
2006-12-15
打赏
举报
回复
lserlohn() ( ) 信誉:100 Blog 2006-12-13 23:49:11 得分: 0
是啊,这跟叠加视频并无本质区别。
而且网上有好多例子吧?
====================================================
大哥,能不能讲讲在一路视频图象上叠加字摹或是实时时间的原理或是工作流程?前面多路视频图象的叠加比较简单,只要连接DS几个自带的filter的PIN,并简单操作Filter Graph,即OK了。但现在字摹和实时时间不是简单、现成的视频流数据,那需要我该怎么处理呢?我刚学DShow,还不太清楚啊。。要自己写filter来实现吗,还是利用DShow里自带的filter就可以完成这个功能?
在网上没找到好的这方面的DEMO,哪位大虾能不能给个合适的链接?小弟拜谢!
lserlohn
2006-12-13
打赏
举报
回复
是啊,这跟叠加视频并无本质区别。
而且网上有好多例子吧?
何亮-1108
2006-12-13
打赏
举报
回复
如果能拿到视频数据,自己叠加好了!
jessiepan
2006-12-13
打赏
举报
回复
哦,谢谢!我现在已经成功的实现了两路视频图象(同时播放两个视频文件)的叠加。
有个新的类似问题,我想再问一下:如果我要在播放一路视频图象的时候,在播放窗口上的任意位置叠加字摹(任意的字符)或是实时的时间,该如何来做? 也是要用 Video Mixing Renderer 来实现吗?
happydeer
2006-12-12
打赏
举报
回复
sdk里面有例子的
Samples\C++\DirectShow\VMR9\Blender
lserlohn
2006-12-12
打赏
举报
回复
没错,是这样的
jessiepan
2006-12-11
打赏
举报
回复
lserlohn(),谢谢!大概明白你的意思了。。
你是说要用 IVMRMixerControl::SetOutputRect 这个方法来设置两路需要叠加的视频的坐标位置吗? 关于这个方法,小弟还有个不太明白的地方,想再问问:
HRESULT SetOutputRect(
DWORD dwStreamID,
const NORMALIZEDRECT* pRect
);
const NORMALIZEDRECT* pRect 这个在 DSHOW 的相关文档里定义成了一个“规格化的矩形”,坐标值为(0.0,0.0,1.0,1.0),当为这个坐标值时,相当于是“整个区域”显示。
我的部分代码如下:
RECT rc;
HWND hPic = ::GetDlgItem(m_hWnd, IDC_STATIC1);
::GetClientRect(hPic, &rc);
//NORMALIZEDRECT r= {rc.left, rc.top,rc.right,rc.bottom};
NORMALIZEDRECT r= {0.0,0.0,1.0,1.0};
hr = pMix->SetOutputRect(0, &r);
hr = pMix->SetOutputRect(1, &r);
实际上,我的视频图象是要在 IDC_STATIC1 即 rc,这个区域范围内显示(IDC_STATIC1为我定义的一个静态文本框区域)。 那么 RECT rc 和 NORMALIZEDRECT r 之间是有个相对应的转换关系了? 比如:我如果要在整个 RECT rc 范围内显示图象,则NORMALIZEDRECT r= {0.0,0.0,1.0,1.0}; 如果只是在 RECT rc 范围的左上四分之一区域(2*2分割,显示4路图象),那么NORMALIZEDRECT r= {0.0,0.0,0.5,0.5}; 是我这样理解的吗??
thanks...
lserlohn
2006-12-08
打赏
举报
回复
就是把两路图像的坐标设定相同的值,然后调整透明度的系数
利用dshow
实现
简单实时
视频
音频发送接收
利用dshow
实现
简单实时
视频
音频发送接收 利用dshow
实现
简单实时
视频
音频发送接收
DShow 摄像头读取
DShow 读取摄像头显示,
VMR
9方式截图
视频
图片 DShow 读取摄像头显示,
VMR
9方式截图
视频
图片 DShow 读取摄像头显示,
VMR
9方式截图
视频
图片
Windows之5:DirectShow+H.264+AAC采集编码
主要的知识点包括DShow基础及Filter原理、DShow配置开发环境及入门简介、 编译baseclasses项目、DShow播放器案例实战、DShow枚举音
视频
输入设备信息、 DShow采集麦克风音频案例实战、DShow+H.264+AAC音
视频
采集与...
dshow
实现
视频
播放器
这是一个dshow
实现
的
视频
播放器,大家可以看看!绝对可以编译,运行!请大家放心使用!有一些小问题,大家可以自己改改就好了!
使用 ffmpeg dshow
实现
系统录屏 .Net(C#)
使用 ffmpeg dshow
实现
系统录屏 .Net(C#) 帮助类。 需要安装 Setup Screen Capturer Recorder
多媒体/流媒体开发
2,543
社区成员
20,281
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章