DirectShow中用wm asf writer保存wmv文件遇到的媒体时间有关问题,兄弟姐妹们帮看看
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天资料,未果...
------解决方案--------------------
检测一下你的代码吧,这个问题很奇怪,我一般都自己定义profile。没遇到过这样的情况。
------解决方案--------------------
支持,关注!!
------解决方案--------------------
呵呵!
恭喜!jf
------解决方案--------------------
恭喜,蹭分
------解决方案--------------------
蹭分
偶对硬盘上的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天资料,未果...
------解决方案--------------------
检测一下你的代码吧,这个问题很奇怪,我一般都自己定义profile。没遇到过这样的情况。
------解决方案--------------------
支持,关注!!
------解决方案--------------------
呵呵!
恭喜!jf
------解决方案--------------------
恭喜,蹭分
------解决方案--------------------
蹭分