DirectShow中用wm asf writer保存wmv文件遇到的媒体时间问题

偶对硬盘上的wmv文件用DirectShow做了视频叠加,然后又连接wm asf writer这个filter将叠加后的视频保存成wmv文件。我取得了该writer的IConfigAsfWriter接口,用 ConfigureFilterUsingProfileGuid()来修改设置profile。

如果我不修改profile,也就是使用默认的,没有问题(在GraphEdit调试显示,默认使用的profile的码流是256kbps)。

由于要处理大量的wmv文件,这些wmv文件的码流各不相同,需要做成码流随wmv文件本身的码流而对应改变,我采用的是取得原始wmv文件的音视频码流,然后判断选择对应的profile,大多正常,不过遇到下面这样的问题:

原始文件a.wmv,音频码流48kbps,视频码流302kbps,视频时长:3分40秒
1.profile:WMProfile_V80_256Video,视频时长:3分40秒,正确
2.profile:WMProfile_V80_384Video,视频时长:9分20秒,不正确
3.profile:WMProfile_V80_768Video,视频时长:3分40秒,正确

2中,视频时间居然从3分40秒变成了9分20秒,不过只有前面的3分40秒有内容,这里时间为什么会变化??????

有音频的时候时间大多以音视为参考,是不是音频要做处理?

调试了1天,看了1天资料,未果...






最终搞定,真是音频的问题,音频码流不能与原始文件相同,要适当小些,就没问题了。我猜视频也有同样的问题,不过居然没出现...............
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值