DirectShow
rageliu
这个作者很懒,什么都没留下…
展开
-
对IVideoWindow的put_Owner()操作后视频窗口不能正常刷新的问题
最近经常见到有人问视频窗口不能正常显示的问题,都说不知道原因即解决办法。其实这是由于视频窗口没有消息循环不能实时刷新造成的,出现这样的情况基本都是在调用了IVideoWindow接口的put_Owner()方法将视频窗口设置为了其他窗口的子窗口后出现的。一般解决办法是将视频窗口设置为主窗体的子窗体,借助主窗体的WM_PAINT消息在OnPaint()里面实现刷新。再有就是在结束时的善后工作原创 2006-03-09 17:38:00 · 8470 阅读 · 5 评论 -
实时传输协议(RTP)和实时控制协议(RTCP)
RTP是一种提供端对端传输服务的实时传输协议,用来支持在单目标广播和多目标广播网络服务中传输实时数据,而实时数据的传输则由RTCP协议来监视和控制。RTP定义在RFC 使用RTP协议的应用程序运行在RTP之上,而执行RTP的程序运行在UDP的上层,目的是为了使用UDP的端口号和检查和。如图16-12所示,RTP可以看成是传输层的子层。由多媒体应用程序生成的声音和电视数据块被封装在RTP信息转载 2007-04-25 11:33:00 · 3585 阅读 · 0 评论 -
RTP协议
-- RTP协议 /RTP控制协议RTCP RTP协议 实时传输协议RTP提供了实时信息的端对端传输业务,如交互的语音和图象;这些业务包括负载类型识别,序列编号,加入时间标志,传输监视.典型的应用是在UDP层上传输RTP包,以利用它的复用和总和检测业务. RTP包括两个紧密相关的部分: - 实时传输协议(RTP),传输有实时特性的信息转载 2007-04-28 14:57:00 · 3418 阅读 · 0 评论 -
RFC3550(RTP) 5.3.1-6.3.4(主要是RTCP)翻译
5.3.1 RTP头部扩展下面给出了一个扩展机制以允许某些实现要求能够试验在RTP数据包头中承载额外信息新的负载格式无关的功能。这个机制被设计为其他未扩展的实现能够忽略这些头部扩展。注意,这个头部扩展只是打算用作某些受限用途。此机制的大多潜在使用最好以前面章节描述的方式来做。例如,对固定头部的一个策略相关的扩展处理起来更廉价,因为这并不是有条件的或可变的位置。一特定负载要求的额外信息“应当不”转载 2007-04-30 16:53:00 · 2438 阅读 · 0 评论 -
DirectShow中写render filter的问题
最近遇到一个问题,损坏的wmv文件,需要拖动后才能正常播放。为力量解决它,我决定写个render filter处理后另构建Graph保存成正常的wmv文件,去掉开始的1秒数据。我写了个render filter,单独视频没问题,加了音频就出错。 提示不支持的状态改变,不过测试正常的wmv文件又没有问题,看来render filter是要复杂些测试中偶然发现视频真的不影响其Graph Manager原创 2007-05-09 17:23:00 · 3150 阅读 · 0 评论 -
RTP/RTCP(实时传输协议/实时传输控制协议)自定义的相关C结构(参考)
wgscd转摘的RTP/RTCP(实时传输协议/实时传输控制协议)基于UDP派生出的协议,并增加了对实时传输的控制。一般用于网上传输实时视频数据,比如远程视频监控,视频点播等。有一本名叫《多媒体网络传输协议》的书上对此2个协议的结构和原理做了比较详细的介绍,好象是清华大学出版社出版的。 我去年做远程视频监控系统时,曾用基于2个协议,用Wonsock工具封装了一个网络传输动态连接库,专门用于局转载 2007-05-16 14:09:00 · 2965 阅读 · 1 评论 -
RTCP的实现
一.Introduction An RTCP implementation has three parts: the packet formats, the timing rules, and the participant database Packet Formats: Timing Rules: 所有的RTCP复合包被周期性送出,这个周期成为reporting interval,所有的R转载 2007-05-16 14:10:00 · 9432 阅读 · 1 评论 -
开发media play,realplayer,暴风影音 等主流播放器视频特效插件
开发media play,realplayer,暴风影音 等主流播放器视频特效插件安装后使用 media play,realplayer,暴风影音 等主流播放器播放视频文件的时候自己显示您设置的特效,支持文字,图片,动态视频,logo等等。不是现在采用已有的外挂字幕方式,而是将特效数据直接加到了视频原始数据上。下图是暴风影音播放文件时采用该插件叠加字幕后的一个demo效果:原创 2008-02-22 19:02:00 · 2283 阅读 · 2 评论 -
vista上使用DirectShow编程
由于vista的出现和microsoft将directshow从dx里分离出来,大家都比较关心directshow的前景到底如何.最近要在vista上编程.关注了些这方面的资料.1.vista上directshow不在是dx的成员,ms将会把dx升级到10 ,而ds归入了windows platform sdk for vista,可以继续使用.2.vista上推出了一个叫media fo原创 2007-12-13 08:59:00 · 1987 阅读 · 0 评论 -
用udp传播实时采集的数据局域网能播放,不过由于是udp,数据顺序有些混乱,考虑加入rtp/rtcp
只有一点体会:在GetDeliveryBuffer取得pin的Sample的时候先不成功,提示不支持该接口。写的这个pin是从CBaseOutputPin继承来的,怎么可能不支持 GetDeliveryBuffer呢???原来是写在了构建Graph之前,没有构建Graph也就是该pin没有连接,当然会失败了,呵呵!!放Render后就好了。不过提示“不支持该接口”好象不是太准确啊,呵呵原创 2007-04-24 18:25:00 · 2264 阅读 · 0 评论 -
Rtp/Rtcp协议头的定义
#ifndef _H_RTPHEADER#define _H_RTPHEADER/*++V ― 版本。识别 RTP 版本。 P ― 间隙(Padding)。设置时,数据包包含一个或多个附加间隙位组,其中这部分不属于有效载荷。 X ― 扩展位。设置时,在固定头后面,根据指定格式设置一个扩展头。 CSRC Count ― 包含 CSRC 标识符(在固定头后)的编号。 M ― 标记。标记由 Profil原创 2007-04-20 15:21:00 · 5666 阅读 · 0 评论 -
Rtp/Rtcp协议
RFC 3550:RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network ser转载 2007-04-20 14:37:00 · 2691 阅读 · 0 评论 -
DirectShow中写push模式的source filter流程 + 源代码(内附详细注释)
虽然网上已有很多关于DirectShow写source filter的资料,不过很多刚开始学的朋友总说讲的不是很清楚(可能其中作者省略了许多他认为简单的过程),读者总希望看到象第一步怎么做,第二步怎么做....这样的demo。其实写你的第一个filter是有一定难度的,只要过了这关以后就容易多了。由于最近需要自己写一个push推模式的source filter,加上刚激活了Blog,不好意原创 2006-03-10 17:19:00 · 16471 阅读 · 32 评论 -
转载---WAVE文件格式剖析
转载---WAVE文件格式剖析WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。WAVE文件各部分内容及格式见附表。 常见转载 2006-03-14 10:30:00 · 1394 阅读 · 0 评论 -
自己写的一个pull模式的source filter,播放mpeg1 2可以,而播放wmv不行的问题
原因是系统没有wmv格式的splitter!!于是写了一个wmv的splitter。在GraphEdit调试是正常的!!可是我的source filter就是和那个splitter连接不上!!郁闷中.... 正在寻找原因.............原创 2006-03-29 11:14:00 · 1733 阅读 · 0 评论 -
DirectShow中例子pull模式的源filter播放大文件慢的问题
DirectShow自带的例子中,有一个pull拉模式的Source Filter例子程序(Async那个),在它的Load()函数(装载源文件)里面调用了Read()函数,这里它是将整个源文件都读入内存中(所以播放小文件不太影响而播放大文件开始要等很久很久)我本来的处理是:让Read()函数先读取适当数据后启动一个子线程接着读数据,而主线程开始连接Graph实现播放,这样可以实现,不过伴原创 2006-04-24 16:20:00 · 2206 阅读 · 4 评论 -
DirectShow中网络播放器的源Source Filter
作者:afterain本人最近刚刚把它做完。鉴于现在很多 人在向这方面发展,所以决定把自己 在此期间的一些经验写出来。让后来的同志们少走些弯路。我的这个事例是通过directshow的例子memfile改写的。如果用于网络的时时播放,会有一些延时问题。具体会在后面说明。我已经把它作成了DLL(实际也是工作的需要 :) ),大家可以在www.feelby.net下载。包括演示例子的源代码。至于DLL转载 2006-11-09 13:59:00 · 4799 阅读 · 0 评论 -
哇,突然觉得OpenGL很强悍,开始学习
哇,突然觉得OpenGL很强悍,开始学习原创 2006-07-18 13:25:00 · 1117 阅读 · 0 评论 -
DirectShow中用wm asf writer保存wmv文件遇到的媒体时间问题
偶对硬盘上的wmv文件用DirectShow做了视频叠加,然后又连接wm asf writer这个filter将叠加后的视频保存成wmv文件。我取得了该writer的IConfigAsfWriter接口,用 ConfigureFilterUsingProfileGuid()来修改设置profile。如果我不修改profile,也就是使用默认的,没有问题(在GraphEdit调试显示,默认使用的pr原创 2007-04-12 10:35:00 · 3958 阅读 · 1 评论 -
视频与图像RGB/YUV格式详解
作者:中华视频网 计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。 这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用转载 2007-04-12 16:36:00 · 1855 阅读 · 0 评论 -
directshow动态改变媒体类型Dynamic Format Changes
在ds的3种filter类型中,trans一般认为是最容易写的,很容易写出一个demo,但是如果要写好一个trans,其实还是有些要注意的地方,特别是Dynamic Format Changes,我认为是最麻烦的,从上到下请求,从下到上请求,buffer大小改变....等等都是要处理好的。如果不处理,内存访问违规,花屏..等一堆问题就出现了。 最近写了一个trans,觉得在处理这方面花的时原创 2010-01-26 17:15:00 · 2656 阅读 · 7 评论