Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 流媒体摄影机时的抖动_Java_Stream_Camera_Vlc_Vlcj - Fatal编程技术网

Java 流媒体摄影机时的抖动

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毫秒时崩溃 我已经尝试过不同的选择。有什么

我正在编写一个小应用程序,从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毫秒时崩溃

我已经尝试过不同的选择。有什么不对劲

编辑


只有在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();
    }
}