如何从一个文件中获取两个媒体流(用于自定义混音器)

时间:2017-10-19 08:20:36

标签: ms-media-foundation mixer

有一个文件有两个视频流。

  1. 我想混合这两个流来制作一个输出流。(使用媒体会话)

  2. 我认为我们可以编写如下所示的拓扑结构。

  3. https://msdn.microsoft.com/en-us/library/windows/desktop/ms701605(v=vs.85).aspx

    IMFActivate         *pSinkActivate = NULL;
    IMFTopologyNode     *pOutputNode = NULL;
    
    pPD->GetStreamDescriptorCount(&cSourceStreams);
    // For each stream, create the topology nodes and add them to the topology.
    for (DWORD i = 0; i < cSourceStreams; i++)
    {
        IMFStreamDescriptor *pSD = NULL;
        IMFTopologyNode     *pSourceNode = NULL;
    
        pPD->GetStreamDescriptorByIndex(i, &fSelected, &pSD);
        // Create the media sink activation object.
        if (i == 0)
            CreateMediaSinkActivate(pSD, hVideoWnd, &pSinkActivate);
        // Add a source node for this stream.
        AddSourceNode(pTopology, pSource, pPD, pSD, &pSourceNode);
        // Create the output node for the renderer.
        if (i == 0)
            AddOutputNode(pTopology, pSinkActivate, 0, &pOutputNode);
    
        // Connect the source node to the output node.
        pSourceNode->ConnectOutput(0, pOutputNode, 0);
    
        SafeRelease(&pSD);
        SafeRelease(&pSourceNode);
    }
    SafeRelease(&pSinkActivate);
    SafeRelease(&pOutputNode);
    

    我不知道自己是否表现不错。

    请帮帮我。

    感谢。

0 个答案:

没有答案