首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectShow视频切割

DirectShow视频切割
EN

Stack Overflow用户
提问于 2015-10-07 05:09:42
回答 2查看 284关注 0票数 4

我正在尝试使用DirectShow实现一个剪切函数。基本上,当我试图通过设置开始和结束位置来削减一个序列时,它是有效的。但是现在我想从同一个源文件中删除第二个序列,并在第一个源文件的末尾直接写。因此,我再次设置开始和结束位置,然后重新启动图形,但是文件编写器过滤器覆盖了第一个裁剪。所以基本上我想知道怎么改变这个。

这个问题肯定存在于avi muxer过滤器中,它为文件编写器创建了写偏移量。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-07 10:35:24

DirectShow多路复用器的设计是为了在会话完成后最后确定输出文件。您不能附加到已经存在的文件,原因很多,只是为了给您一个:多路复用器必须比较新媒体类型和文件中现有的媒体类型,并进行流映射,以决定是否追加。这并不是不可能的,它们根本就没有缩进以供使用。

这里的解决方案,除了DES,另一个答案中已经提到的CPlusSharp,是一次写入输出,从多个段收集数据,并分别调整时间戳。您通常需要几个筛选图来完成任务,并以特定的方式在图之间传输数据。一个图形正在写入文件(一次),然后其他源图正在提供数据,例如,从已经编码的内容开始,不进行转码,然后另一个图形追加新的数据。

票数 0
EN

Stack Overflow用户

发布于 2015-10-07 09:46:01

对不起,但是使用DirectShow将不止一个场景剪成一个新文件的唯一方法是使用DirectShow编辑服务。祝你好运,它是一个非常多的错误,很难掌握,而且被微软抛弃了很长时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32984221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档