DirectShow视频剪辑

DirectShow video cutting

本文关键字:视频 DirectShow      更新时间:2023-10-16

我正在尝试使用DirectShow实现cut函数。基本上,当我试图通过设置开始和结束位置来切割一个序列时,它是有效的。但是现在我想从同一个源文件中剪切出第二个序列,并直接在第一个剪切的末尾写入。所以我再次设置开始和结束位置,并再次开始图形,但文件写入器过滤器覆盖了第一个剪切。所以基本上我想知道如何改变这个

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

我很抱歉,但是用DirectShow将多个场景剪切到新文件的唯一方法是使用DirectShow编辑服务。祝你好运,它漏洞百出,很难掌握,而且被微软抛弃了很长时间。

DirectShow多路复用器被设计为在会话完成后完成输出文件。由于许多原因,您不能添加到已经存在的文件中,仅给您一个:多路复用器必须将新媒体类型与文件中现有的媒体类型进行比较,并进行流映射,以决定是否添加。这并不是说不可能,它们只是不适合这种用途。

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