dshow做格式转换时以最快速度跑(而不是播放时间跑),大家用什么方法指示进度?求教高手。

libinzhangyuan 2006-05-23 08:39:57
发现使用IMediaSeeking 的GetCurrentPosition 获得的是run后实际程序跑的时间(而不是media中时间戳的时间)。比如:如3分钟的铃声,转换格式将总共花10秒钟,则GetCurrentPosition取得的时间是0到10秒。。 :(

想用SetTimeFormat设置成TIME_FORMAT_FRAME TIME_FORMAT_SAMPLE
TIME_FORMAT_FIELD TIME_FORMAT_BYTE 这些试试。
却又发现我的graph不支持 :(
...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
libinzhangyuan 2006-05-25
  • 打赏
  • 举报
回复
已经采用happydeer(新奇军) 的方法做出来了。
用NullNull filter改了个来用。

libinzhangyuan 2006-05-24
  • 打赏
  • 举报
回复
谢谢 新奇军。


但还想听听有没有其他的什么方案。
DentistryDoctor能说仔细点好么?要怎么取时间?
DentistryDoctor 2006-05-24
  • 打赏
  • 举报
回复
还是可以取得时间的呀。
happydeer 2006-05-24
  • 打赏
  • 举报
回复
在非压缩格式的sample上都是打了时间戳,这个时间信息可以用来参考作当前的进度。如果decoder不是自己写的,那么你要自己写一个transform filter,来获取sample上的时间戳。

file source -> parser -> decoder -> your trans-in-place filter -> encoder -> file writer。

your trans-in-place filter提供一种回调机制,将当前sample的时间戳传递给应用程序。或者your trans-in-place filter只是将最新的sample上的时间保存在filter内部,并提供特定的接口给应用程序,用以返回这个时间值。

2,542

社区成员

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

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