当前位置: 代码迷 >> 多媒体/流媒体开发 >> (!)怎么实现directshow连续播放两个Avi中间不闪无黑屏
  详细解决方案

(!)怎么实现directshow连续播放两个Avi中间不闪无黑屏

热度:5477   发布时间:2013-02-26 00:00:00.0
(在线等!)如何实现directshow连续播放两个Avi中间不闪无黑屏
我播放的方式,播完一个视频后然后关闭这个视频,然后接着播放下一个视频。这样中间会刷新下而且还有黑屏。
如何解决,请高手指点,希望有代码。(初学directshow)

------解决方案--------------------------------------------------------
这个静止是有需要对第二个视频进行初始化造成的吗
------解决方案--------------------------------------------------------
把2个视频做成一个,中间用图片连接过渡一下
------解决方案--------------------------------------------------------
帮顶
感觉需要自已去实现一个源Filter
------解决方案--------------------------------------------------------
如果使用的是DSHOW内部FILTER就不能实现你要的效果,因为你没有控制核心播放代码
------解决方案--------------------------------------------------------
两段文件如果是不同的码流类型和文件封装类型,估计是要修改播放器的播放和显示功能的。
如果你做插件的话估计是可以实现的。但是在显示上估计会遇到不少问题。
------解决方案--------------------------------------------------------
实现这个肯定得写一个专用的源Filter,无缝回放avi估计容易实现,无缝回放mpeg有点困难
------解决方案--------------------------------------------------------
加trans filter,两入pin一出pin,一个play,另一个pause,注意保存pause的头帧。
------解决方案--------------------------------------------------------
你这个就是传说中的video gapless 播放啊 , 有点难 , 问题是在第一个input结束前接上一个画面。
------解决方案--------------------------------------------------------
加trans filter,两入pin一出pin,一个play,另一个pause,注意保存pause的头帧。


source -
--> trans ------->render
--> filter 
source -

两个source轮流的开始暂停

------解决方案--------------------------------------------------------
你可以在播放第一个视频的过程中构建第二个视频的播放链路,当第一个视频播放完成后,马上启动第二个视频的播出(调用run())。这样省去了构建链路的时间,应该效果会好很多,至少不会感觉停顿很明显。
  相关解决方案