奇怪的dshow问题

yyhzpk 2009-12-01 10:47:52
做了一个dshow程序,专门做avi->avi的编码转换,链路如下:

---Mp3 Compress ---------------------->
file read --> avi splitter --- --->avi mux--->file write
---ffdshow decode--> --ffdshow encode-->

原来avi文件格式声音为pcm,想把声音压缩为mp3,视频解码后变换参数后,再压缩成h264,最后存成avi 文件
链路没有问题,在graphedit中已试验过,完全正确,但问题是现在写成代码实现上述链路后(完全人工连接filter),
直接调用m_pMediaControl->Run();写的文件却是坏的,
更奇怪的是:我把我的链路注册进graphedit后,在graphedit中打开此链路,如果在graphedit中点运行,生成的
文件就是好的,但如果调用我程序的run接口,写的文件一定的坏的,不知道这两个环境有什么区别?同样的运行,
不一样的结果
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
瓶盒 2009-12-02
  • 打赏
  • 举报
回复
编程实现时,必须要在数据播完后调用pMediaControl->Stop(),这样保存的文件才正常
blackboycpp 2009-12-02
  • 打赏
  • 举报
回复
把你的FilterGraph加入到活动对象表ROT, 运行时, 用GraphEdit看看, 是否和在GraphEdit中模拟的一样。
yyhzpk 2009-12-02
  • 打赏
  • 举报
回复
说简单一点,就是用程序建立的链路,直接程序调用run,后,转换的avi文件格式是乱的
但如果在graphedit中打开此链路(注册后直接打开),点击graphedit中的运行按钮
转换后的avi文件就是好的
笨笨熊_穆 2009-12-02
  • 打赏
  • 举报
回复
呵呵,看不懂你的意思阿,但是写个程序我能实现他

2,543

社区成员

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

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