我目前正在使用的应用程序使用 libstreaming-example-1 (libstreaming)上举例说明的方法将相机从Android设备流式传输到Ubuntu服务器(使用{{ 3}}和openCV)。这样,我的Android设备就像服务器一样,等待客户端(Ubuntu服务器)通过libVLC发送播放信号,然后通过UDP启动流式传输。
我遇到的流媒体问题是我在传输过程中遇到了大约 1.1s 的延迟,我希望将其降低到150ms 最大。
我尝试实现了libstreaming-examples的 libstreaming-example-2 ,但是我无法访问详细的文档,我无法弄清楚如何获取在我的服务器上显示流媒体的正确信号。除此之外,我试图看看我能用示例1做些什么来降低它,但直到现在还没什么新的。
PS:我正在使用局域网,所以网络/带宽不是问题。
以下是问题:
谢谢!
答案 0 :(得分:0)
与你有相同的问题,有大量的流延迟(大约1.5 - 1.6秒)
我的设置是Android设备,它使用libStreaming通过RTSP流式传输相机,接收端是使用libVlc作为媒体播放器的Android设备。现在我找到了一个将延迟减少到250-300毫秒的解决方案。它是通过使用以下参数设置libVlc来实现的。
mLibvlc = new LibVLC();
mLibvlc.setVout(LibVLC.VOUT_ANDROID_WINDOW);
mLibvlc.setDevHardwareDecoder(LibVLC.DEV_HW_DECODER_AUTOMATIC);
mLibvlc.setHardwareAcceleration(LibVLC.HW_ACCELERATION_DISABLED);
mLibvlc.setNetworkCaching(150);
mLibvlc.setFrameSkip(true);
mLibvlc.setChroma("YV12");
restartPlayer();
private void restartPlayer() {
if (mLibvlc != null) {
try {
mLibvlc.destroy();
mLibvlc.init(this);
} catch (LibVlcException lve) {
throw new IllegalStateException("LibVLC initialisation failed: " + LibVlcUtil.getErrorMsg());
}
}
}
您可以使用setNetworkCaching(int networkCaching)来自定义位延迟
请告诉我这是否对您有所帮助,或者您在此环境或其他环境中找到了更好的解决方案。