基于dvd navigator的dshow图表,如何获取DVD所有视频流的总长度?

mickyo 2010-05-02 11:23:17
我构造了以下图表


DVD Navigator -> MPEG-2 Video Decoder (Gabest) -> Video Mixing Renderer 9 还有 Line 21 Decoder 2

可以导出各种接口进行播放并控制.

导出 IMediaSeeking 成功, SetTimeFormat(&TIME_FORMAT_MEDIA_TIME) 也成功

但 SetPositions 和 GetDuration 就总是返回 E_NOTIMPL ,即函数不支持.

我以前在控制VOB文件的时候也遇到过,是Splitter的问题,换了一个Splitter就OK了.

可现在我一连换了 DVD MPEG2 的 Cyberlink Gabest ffdshow(libmpeg2) ffdshow(libavcodec) 四种MPEG2 解码器都不行,是怎么回事呢?

请问:基于dvd navigator的dshow图表,如何获取DVD所有视频流的总长度?
...全文
176 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mickyo 2010-05-04
  • 打赏
  • 举报
回复
我终于知道,打开DVD里的单个VOB文件,是无法准确获取到流长的.
mickyo 2010-05-03
  • 打赏
  • 举报
回复
搞掂,可以循环获取TITLE数和每个TITLE的时间信息,和WINDOWS MEDIA PLAYER匹配是对的

但获取单个VOB文件时,时间老是不对,和暴风获取的时间是一样的,但一个0.97G的VOB怎么可能只有832秒?

将所有DVD里的VOB文件的时间获取相加后,与DVD图表里的时间足足少了2万多秒,真是晕啊.

难道我的方法有错?
尹成 2010-05-03
  • 打赏
  • 举报
回复
不好意思我也不知道哦
帖子都沉底了!只能帮楼主顶到上面,以期更多高手帮楼主解决难题!

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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