Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Video 一些视频的VLCJ黑屏(带声音)_Video_Vlcj - Fatal编程技术网

Video 一些视频的VLCJ黑屏(带声音)

Video 一些视频的VLCJ黑屏(带声音),video,vlcj,Video,Vlcj,我对一些视频的黑屏(声音)有问题。非工作视频从不触发事件“videoOutput”。在为所有视频工作了几个月后,它于昨天开始,我花了最后一天时间研究这个问题。在检查日志后,我开始认为这可能是vlcj中的一个错误 我正在运行Ubuntu12.10和VLC2.2.0,目前正在运行VLCJ3.0.1,但我已经尝试了几个不同的版本。我测试的所有视频都是mp4,并且以前一直在工作 下面我提供了一个代码示例,以及非工作视频和工作视频的日志之间的差异 代码示例: Native.loadLibrary(

我对一些视频的黑屏(声音)有问题。非工作视频从不触发事件“videoOutput”。在为所有视频工作了几个月后,它于昨天开始,我花了最后一天时间研究这个问题。在检查日志后,我开始认为这可能是vlcj中的一个错误

我正在运行Ubuntu12.10和VLC2.2.0,目前正在运行VLCJ3.0.1,但我已经尝试了几个不同的版本。我测试的所有视频都是mp4,并且以前一直在工作

下面我提供了一个代码示例,以及非工作视频和工作视频的日志之间的差异

代码示例:

    Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);

    //Get player
    EmbeddedMediaPlayerComponent m = new EmbeddedMediaPlayerComponent(); 

    //Set gui components
    getContentPane().add(m);

    //Set JFrame settings
    this.setSize(500,500);
    this.validate();
    this.setLocationRelativeTo(null);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //Play media
    m.getMediaPlayer().playMedia(configuration.getVideoURI());  

    //Enable overlay
    m.getMediaPlayer().enableOverlay(true);
这可能并不重要,但重要的是事件的顺序不同。非工作和工作情况之间唯一不同的(关于输入和系统)是两个不同的视频,我缩小了视频规格,使其仅在分辨率上有所不同,如果这可能会产生任何影响的话。非工作:854 x 480,工作:(480 x 338和多个其他)

日志中不同的部分:

Non-working:
vlcj: (DefaultMediaPlayer.java:1958)                 | DEBUG | mediaChanged(mediaPlayer=uk.co.caprica.vlcj.player.embedded.DefaultEmbeddedMediaPlayer@1f966d18,media=native@0x7fc784090c30 (uk.co.caprica.vlcj.binding.internal.libvlc_media_t@84098bf7),mrl=file:///home/erik/Videos/top10exp.mp4)
vlcj: (DefaultMediaPlayer.java:1962)                 | DEBUG | Raising event for new media
vlcj: (DefaultMediaPlayer.java:704)                  | DEBUG | play()
vlcj: (DefaultEmbeddedMediaPlayer.java:314)          | DEBUG | onBeforePlay()
vlcj: (DefaultEmbeddedMediaPlayer.java:151)          | DEBUG | attachVideoSurface()
vlcj: (CanvasVideoSurface.java:67)                   | DEBUG | attach()
vlcj: (CanvasVideoSurface.java:70)                   | DEBUG | componentId=81788948
vlcj: (LinuxVideoSurfaceAdapter.java:39)             | DEBUG | attach(componentId=81788948)
vlcj: (CanvasVideoSurface.java:72)                   | DEBUG | video surface attached
vlcj: (DefaultMediaPlayer.java:707)                  | DEBUG | after play
vlcj: (DefaultEmbeddedMediaPlayer.java:238)          | DEBUG | enableOverlay(enable=true)

Working:
vlcj: (DefaultMediaPlayer.java:704)                  | DEBUG | play()
vlcj: (DefaultEmbeddedMediaPlayer.java:314)          | DEBUG | onBeforePlay()
vlcj: (DefaultEmbeddedMediaPlayer.java:151)          | DEBUG | attachVideoSurface()
vlcj: (CanvasVideoSurface.java:67)                   | DEBUG | attach()
vlcj: (CanvasVideoSurface.java:70)                   | DEBUG | componentId=81788948
vlcj: (LinuxVideoSurfaceAdapter.java:39)             | DEBUG | attach(componentId=81788948)
vlcj: (CanvasVideoSurface.java:72)                   | DEBUG | video surface attached
vlcj: (DefaultMediaPlayer.java:1958)                 | DEBUG | mediaChanged(mediaPlayer=uk.co.caprica.vlcj.player.embedded.DefaultEmbeddedMediaPlayer@33da7214,media=native@0x7f1c9c090b50 (uk.co.caprica.vlcj.binding.internal.libvlc_media_t@9c098a6c),mrl=file:///home/erik/Videos/summer1.mp4)
vlcj: (DefaultMediaPlayer.java:1962)                 | DEBUG | Raising event for new media
vlcj: (DefaultMediaPlayer.java:707)                  | DEBUG | after play
vlcj: (DefaultEmbeddedMediaPlayer.java:238)          | DEBUG | enableOverlay(enable=true)

黑色vlcj屏幕也有同样的问题。我们的问题是,播放两个视频后,屏幕变黑,再也不会出现。但是如果我们跳过两个视频,那么它是有效的。我在3个不同的系统上运行相同的代码,在一个系统上代码工作正常,但在其他系统上工作不正常

一个系统和其他系统的区别只是Ram。所以我认为这是系统资源问题。只需清除所有缓存的ram,然后重试。我希望它能起作用

在不同的系统上尝试相同的代码,然后查看。因为我想在玩vlcj时查看系统资源的使用情况

我尝试了800 x 600的屏幕分辨率,并增加了内存,然后它的工作顺利