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