网络Filter只能单独播视频、或者音频,不能同时播视频和音频的问题。

jmcooler 2005-08-25 04:33:25
服务方读ASF文件的Sample,并以一个Socket发送视频、音频Sample到客户Filter,客户Filter自然有两个输出Pin,一个输出视频,一个输出音频,问题是,客户方要是只连视频Pin,或者只连音频Pin进行播放都很正常。要是两个输出Pin同时进行连接播放,则不能播放(但偶尔也能播,很偶尔)。
服务器方是保证按时间戳先后发送视音频Sample的,但发送速度很快。
当视音频Pin同时连接并播放时,我发现接收线程被阻塞,而这时关闭Video窗口,则接收线程又能运行。

是线程阻塞了吗?抑或是时间戳不同步?但好像都不象,我试着在这个两种怀疑上做过一些工作。
我这么来分析,要是线程死锁,那么程序一定会死,但程序并没有死。要是视音频时间戳不同步,而服务器方完全是按时间戳先后发送的,不会出现不同步的情况。
或许是要写两个Socket来分别发送视音频,建立独立的两条链路来工作,而不在同一个客户Filter里输出两路流。
...全文
157 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaojian999 2005-09-03
  • 打赏
  • 举报
回复
考虑下你的decoder和demax过程有没有问题
duke7y 2005-09-02
  • 打赏
  • 举报
回复
你用两个线程分别deliver视/音频数据。就不会阻塞住了。
lukeliuli 2005-09-01
  • 打赏
  • 举报
回复
GetDeliverBuffer() 阻塞
ccxian123 2005-08-29
  • 打赏
  • 举报
回复
播放时会是以音频为基准的。你的问题可能是时戳问题。Client端要修改从Server那里来的包中的时戳,具体实现方法可以是减去第一个包的时戳。
jmcooler 2005-08-29
  • 打赏
  • 举报
回复
我最后写成两路Socket接收,并在客户方创建两个FilterGraph,分别处理视音频两路流,之后视音频都能播了,但不同步,同步问题又困扰人了。

为啥?
vencent 2005-08-26
  • 打赏
  • 举报
回复
谢谢
jmcooler 2005-08-26
  • 打赏
  • 举报
回复
没人回答我的问题,倒反问我的很多哈。呵呵,自然也欢迎提问。
答复(lingfp_hello):
客户端可以先把自己开发的接收Filter,加入FilterGraph,然后枚举接收Filter的输出Pin,然后调用IGraphBuilder接口的Render( IPin* pOutPin )函数来命令连接,系统就会自动为你的输出Pin寻找合适的Filter进行连接,或许系统连接的就不是WMVideo Decoder DMO。这样做的前提是,你的输出Pin已经有媒体类型了。
另外,也可以创建一个WMVideo Decoder DMO对象,然后加入FilterGraph,然后调用IGraphBuilder的Connect来将你的输出Pin和WMVideo Decoder DMO对象的输入Pin进行连接。
lingfp_hello 2005-08-26
  • 打赏
  • 举报
回复
非常感谢!
我用WMV3类型去连接WMVideo Decoder DMO却怎么也连接不了.
你是用WMVideo Decoder DMO解码吗?怎么连接的啊?
jmcooler 2005-08-26
  • 打赏
  • 举报
回复
我是用的推模式,考虑ASF文件的系统Filter都是推模式的。所以没有采用拉模式。
vencent 2005-08-26
  • 打赏
  • 举报
回复
楼主您的FILTER是采用拉模式的吗?
jmcooler 2005-08-25
  • 打赏
  • 举报
回复
楼主回复vencent:
我自己是不必关心subtype的,因为这个媒体类型要么可以用Format SDK从ASF文件里获取,要么可以由ASF Reader Filter自动获取,你只需要将这个媒体类型(及子类型)传到客户方,以让客户方知道就可以了,我从来没有去关心文件具体是什么媒体子类型的。
vencent 2005-08-25
  • 打赏
  • 举报
回复
请教楼主使用wmv3时候subtype是什么啊,你是用你自己开发的filter和wmvideo decoder dmo连接的吗?

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧