首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部分视频VLCJ黑屏(有声)

部分视频VLCJ黑屏(有声)
EN

Stack Overflow用户
提问于 2014-04-12 18:27:55
回答 1查看 553关注 0票数 0

我对一些视频的黑屏(有声音)有问题。非工作视频永远不会触发videoOutput事件。在为所有视频工作了几个月后,它于昨天开始,我花了最后一天来检查这个问题。在检查了日志之后,我开始认为这可能是vlcj中的一个bug。

我运行的是Ubuntu 12.10和VLC 2.2.0,目前我运行的是vlcj 3.0.1,但我已经尝试了几个不同的版本。我测试过的所有视频都是mp4格式的,而且以前都是有效的。

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

代码示例:

代码语言:javascript
复制
    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和多个其他)。

日志的不同部分:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2014-07-08 21:59:54

我们在vlcj黑屏上也遇到了同样的问题。我们的问题是,在播放了2个视频之后,屏幕变黑,再也不会出现了。但是如果我们跳过两个视频,那么它是有效的。我在3个不同的系统上运行相同的代码,在一个系统上,代码工作得很好,但在其他系统上却不能很好地工作。

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23029138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档