【发布时间】:2014-07-22 15:15:24
【问题描述】:
我正在使用 Directshow 处理 UDP/RTP 多节目传输流。 我希望在单个图表中解码不同程序带来的音频通道。 如何配置解复用器以实现此目的?
使用GraphEdit,组成的基本图:
网络接收器 ---> MS 解复用器 ---> PSI 解析器
允许我查看与每个节目关联的节目列表和音频/视频频道。 如果我在 PSI 解析器属性中选择程序、音频和视频 PID,则会呈现内容。 现在,如何在同一张图中同时渲染来自不同程序的多个通道?
我试过了:
1) 通过 PSI 解析器属性对话框。第一个配置没问题,但是当我配置第二个音频/视频/节目时,旧的内容渲染被新的配置所取代。使用这种方法通过 API 构建图形会带来相同的结果:只有第一个配置有效。如果我添加其他引脚,我只能在配置与第一个引脚相同的情况下呈现内容。如果音视频 PID 属于不同的程序,则不渲染。
2)级联两个(或更多)解复用器,配置第一个转发属于特定程序的数据包,第二个从接收的流中提取音频和视频。对于此配置,输出 pin 媒体类型 =“传输流”,映射到“传输数据包(完成)”; PID是PSI解析器识别的程序PID。 结果:图表运行,但我得到一个黑色窗口并且没有音频。
你能帮忙吗?
【问题讨论】:
-
我认为您必须手动配置 demux 过滤器。 (不使用 psi 解析器)。
标签: audio video streaming directshow