Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Join 如何将AVI区块与directshow或其他连接?_Join_Append_Directshow_Avi_Cut - Fatal编程技术网

Join 如何将AVI区块与directshow或其他连接?

Join 如何将AVI区块与directshow或其他连接?,join,append,directshow,avi,cut,Join,Append,Directshow,Avi,Cut,我正在尝试重新连接(一个原始)AVI文件的较小块。如何做到这一点?我正在编程C++,一直使用DirectShow,但是似乎没有过滤器可以实现我想要的。像AVI附加过滤器之类的东西会很棒 没有标准的合并过滤器,您需要编写自己的或寻找第三方解决方案。要编写自己的文件,您需要确保两个源上的媒体类型匹配,并更新它们上的时间戳,以便将这些部分缝合到一个平滑流中。这个答案对于不再需要查找特定的directshow筛选器很有帮助。然而,我自己不知道如何编写这样一个过滤器。也不知道有任何第三方过滤器。我正试图使

我正在尝试重新连接(一个原始)AVI文件的较小块。如何做到这一点?我正在编程C++,一直使用DirectShow,但是似乎没有过滤器可以实现我想要的。像AVI附加过滤器之类的东西会很棒

没有标准的合并过滤器,您需要编写自己的或寻找第三方解决方案。要编写自己的文件,您需要确保两个源上的媒体类型匹配,并更新它们上的时间戳,以便将这些部分缝合到一个平滑流中。

这个答案对于不再需要查找特定的directshow筛选器很有帮助。然而,我自己不知道如何编写这样一个过滤器。也不知道有任何第三方过滤器。我正试图使用VFW CreateEditedStream来完成它,但我在粘贴流的那一刻被卡住了(当时计算机崩溃了)。顺便说一句,我只想合并音频流(例如两个avi文件,每个文件只包含一个音频流)。顺便说一下,这可能会帮助您完成这项任务,但如果我选择,我会编写一个合并过滤器。好的,我已经研究了DES以及如何构建过滤器。DES没有提供一个组合AVIS的例子(至少不在C++中,DESCombine是C.Y./.NET),并且构建我自己的过滤器需要花费很多时间…无论如何,我不能简单地使用AVI拆分器+IMediaSeeking吗?只需一次就可以了。只是我没有让它在一行中寻找不同的段以便将它们保存到文件中。它总是只需要最后一段。那么,你认为这有可能吗?切割/修剪更容易,合并更难。因为合并需要两个源和序列化。这并不难,但也不是一个基本的操作,因此没有标准的过滤器。如果不编写客户过滤器,很难判断该怎么做。也许你更喜欢直接使用AVI API。对我的应用程序来说,修剪就足够了,但它需要多个修剪。我成功地切割了原始AVI(仅包含音频流)一次。但我想修剪它多次,最好使用AVI拆分器和IMediaSeeking,因为如果我只修剪一次,它就是这样工作的。因此,不需要合并,只需要切割相关的部分,并在飞行中重新连接它们。Therefre我已经尝试调用IMediseek两次(一开始),但是RenderStream(使用Avi Mux)方法只应用两次搜索中的最后一次,第一次“忽略”。