audio - 解复用 UDP/RTP 多节目传输流

标签 audio video streaming directshow

我正在使用 Directshow 处理 UDP/RTP 多节目传输流。
我希望在单个图表中解码不同程序带来的音频 channel 。
如何配置解复用器以实现此目的?

使用 GraphEdit,由以下组成的基本图形:

网络接收器 ---> MS 解复用器 ---> PSI 解析器

允许我查看与每个节目关联的节目列表和音频/视频 channel 。
如果我在 PSI 解析器属性中选择程序、音频和视频 PID,则会呈现内容。
现在,如何在同一张图中同时渲染来自不同程序的多个 channel ?

我试过:

1) 通过 PSI 解析器属性对话框。第一个配置没问题,但是当我配置第二个音频/视频/节目时,旧的内容渲染被新的配置所取代。使用这种方法通过 API 构建图形会带来相同的结果:只有第一个配置有效。如果我添加其他引脚,我只能在配置与第一个引脚相同的情况下呈现内容。如果音频/视频 PID 属于不同的程序,则不渲染。

2)级联两个(或更多)解复用器,配置第一个转发属于特定节目的数据包,第二个从接收的流中提取音频和视频。对于此配置,输出 pin 媒体类型 =“传输流”,映射到“传输数据包(完成)”; PID是PSI解析器识别的程序PID。
结果:图表运行,但我得到一个黑色窗口并且没有音频。

你能帮忙吗?

最佳答案

如何在 demux 之后添加一个 tee 过滤器,然后将多个解析器添加到 tee 的输出引脚?我认为这可能会奏效。

关于audio - 解复用 UDP/RTP 多节目传输流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24891218/

相关文章:

android - HTML5声音播放器无法正常工作

jquery - 如何在HTML5音频播放器的播放列表中获取每首歌曲的持续时间?

php - 获取YouTube用户列表

linux - HTML5 视频(mp4 格式)标签无法在 linux 操作系统上播放

android - stagefright CameraSource::read 在 Samsung Galaxy S2 上返回小帧(20 字节)

c# - 播放器与具有特定标签的对象碰撞时的 Unity3D 播放声音

java - 在每个 RTP 数据包中捕获 8kHz、16 位线性样本和 4 帧 20ms 音频

html - 默认情况下关闭 HTML5 视频的隐藏式字幕

android - HttpEntity.getContent() 进度指示器?

后台的 iOS webview 和音频 html5