我需要从red5上的实时流中提取音频并单独流式传输。
在带有rtmp模块的nginx上我只是通过ffmpeg重新传输这个流而没有视频数据,但我不知道如何做任何事情这个(有或没有ffmpeg)在Red5上。
Google上的第一个链接给了我这个:
只需在IClientStreams上注册IStreamListeners,然后在RTMPEvents中将AudioData与VideoData分开
但这并没有多大帮助。说实话,这根本没有用。这些IStreamListeners是什么以及如何在 IClientStream 上注册它们?
而且,更神奇的是,如何在某些RTMPEvent中将AudioData与VideoData分开?
答案 0 :(得分:1)
这是您扩展RTMPClient并捕获音频或视频事件的方式
private class TestClient extends RTMPClient { private int audioCounter; private int videoCounter; public void connect() { private IEventDispatcher streamEventDispatcher = new IEventDispatcher() { public void dispatchEvent(IEvent event) { System.out.println("ClientStream.dispachEvent()" + event.toString()); String evt = event.toString(); if (evt.indexOf("Audio") >= 0) { audioCounter++; } else if (evt.indexOf("Video") >= 0) { videoCounter++; } } }; } }
这只是计算a / v事件,但它会让你在那里的一部分。我建议看看red5中的单元测试,你可以在那里学到很多东西。