Java 流媒体摄影机时的抖动
我正在编写一个小应用程序,从cameraLive流式播放视频!Cam同步高清创意。我正在使用VLCj库。 一段时间后,控制台出现Java 流媒体摄影机时的抖动,java,stream,camera,vlc,vlcj,Java,Stream,Camera,Vlc,Vlcj,我正在编写一个小应用程序,从cameraLive流式播放视频!Cam同步高清创意。我正在使用VLCj库。 一段时间后,控制台出现 [0494a9bc] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (jitter of 154 ms ignored) [0494a9bc] main input error: ES_OUT_RESET_PCR called 应用程序在大约2000毫秒时崩溃 我已经尝试过不同的选择。有什么
[0494a9bc] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (jitter of 154 ms ignored)
[0494a9bc] main input error: ES_OUT_RESET_PCR called
应用程序在大约2000毫秒时崩溃
我已经尝试过不同的选择。有什么不对劲
编辑
只有在Windows上编译时才会发生这种情况。在Linux上一切正常,但它必须在Windows上工作。这可能与vlcj本身无关。您是否验证了如果使用vlc应用程序使用相同的转码选项播放相机会发生什么情况?您是否看到了相同的行为?从您发布的代码中不清楚,但您是否也在阻止您的CameraServer实例被垃圾收集?@caprica是的,您是对的,我在仅使用vlc进行流式处理时也遇到了问题。
public class CameraServer {
private MediaPlayerFactory factory;
private HeadlessMediaPlayer mediaPlayer;
private CanvasVideoSurface videoSurface;
public CameraServer(){
factory = new MediaPlayerFactory();
// Create player.
mediaPlayer = factory.newHeadlessMediaPlayer();
}
public void start(){
// Select input device.
String mrl = "dshow://";
// Tweak the options depending on your encoding requirements and audio
String[] options = {":sout=#transcode{vcodec=mp2v,fps=30, width=640, height=640}" + formatHttpStream("127.0.0.1", 5555), "no-sout-audio", "clock-jitter=0"};
mediaPlayer.playMedia(mrl, options);
}
private static String formatHttpStream(String serverAddress, int serverPort) {
StringBuilder sb = new StringBuilder(60);
sb.append(":duplicate{dst=std{access=http,mux=ts,");
sb.append("dst=");
sb.append(serverAddress);
sb.append(':');
sb.append(serverPort);
sb.append("}}");
return sb.toString();
}
}