【问题标题】:way to join AVI chunks with directshow or other?用 directshow 或其他方式加入 AVI 块的方法?
【发布时间】:2013-02-02 22:52:26
【问题描述】:

我正在尝试重新加入(一个原始)AVI 文件的较小块。那怎么办?我正在编程 C++ 并且到目前为止一直在使用 directshow 但似乎没有可用的过滤器来实现我想要的。像 AVI Append 过滤器之类的东西会很棒!

【问题讨论】:

    标签: join append directshow avi cut


    【解决方案1】:

    没有标准的合并过滤器,您需要自己编写或寻找第三方解决方案。要编写自己的内容,您需要确保两个来源的媒体类型匹配,并更新它们上的时间戳,以将各个部分拼接成一个流畅的流。

    【讨论】:

    • 这个答案在不必再寻找特定的directshow过滤器方面很有帮助。但是,我不知道如何自己编写这样的过滤器。也不知道任何第三方过滤器。我正在尝试使用 VFW CreateEditedStream 来完成它,但是在我想粘贴流的那一刻我卡住了(当时计算机崩溃了)。顺便说一句,我只想合并音频流(例如两个仅包含一个音频流的 avi 文件)。
    • 顺便说一句,有DES可能会帮助你完成任务,但如果我要选择,我会写一个合并过滤器。
    • 好的,我研究了 DES 以及如何构建过滤器。 DES 没有提供组合 AVI 的示例(至少不是在 C++ 中,DESCombine 是 C#/.Net)并且构建我自己的过滤器需要很长时间......无论如何,我不能简单地使用 AVI 拆分器 + IMediaSeeking 吗?它只适用于一次切割。只是我没有让它连续寻找不同的段以将它们保存到文件中。它总是只占用最后一段。那么,您认为有可能吗?
    • 剪切/修剪更容易,合并更难。因为要合并,您需要两个源和序列化。这并不难,但也不是基本操作,因此没有标准过滤器。如果不编写客户过滤器,很难说该怎么做。也许您更喜欢直接使用 AVI API。
    • 对我的应用程序进行修剪就足够了,但它需要是多次修剪。我成功地切割了原始的 AVI(仅包含音频流)一次。但我想多次修剪它,最好使用 AVI 拆分器和 IMediaSeeking,因为如果我只修剪一次,它就是这样工作的。因此,无需合并,只需剪切相关部分并即时重新连接它们即可。因此,我尝试调用 IMediaSeeking 两次(一开始),但 RenderStream(使用 Avi Mux)方法仅应用两次查找中的最后一次,第一次是“忽略”。
    猜你喜欢
    • 2019-07-17
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 2018-09-02
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多