我使用vlcj(http://code.google.com/p/vlcj/)使用Java中的vlc-lib来记录我的屏幕。我正在使用Win7和XP(在这两个平台上都会出现错误)。
我在那些平台上运行了一个telnet服务器,它可以获得启动和停止消息来启动和停止屏幕录制。当进行多个录制时,会出现以下错误:screen demux error: Cannot create bitmap
然后我停止telnet服务器并重新启动它,它可以再次进行屏幕捕获。我的问题是,为什么会出现这个错误消息,我该如何解决它,这样我就不必不时地重新启动服务器了?以下是开始录制的代码片段(sry,我无法提供telnet服务器的全部代码):
NativeLibrary.addSearchPath("vlc", libvlcPath); //libvlcPath is a String with the specified path
System.setProperty("jna.library.path", libvlcPath);
MediaPlayerFactory factory = new MediaPlayerFactory("--no-video-title-show");
EmbeddedMediaPlayer mediaPlayer = factory.newEmbeddedMediaPlayer();
File videoFile = new File(savePath + fileName + ".mp4");
String[] options = {":sout=#transcode{vcodec=h264,acodec=mp4a}:std{access=file,mux=mp4,dst=" + videoFile + "}", ":screen-fps=5.0"};
mediaPlayer.playMedia("screen://", options);
停止录制的代码:
mediaPlayer.stop();
mediaPlayer.release();
我还在Mac OS和Ubuntu 1004上运行telnet服务器(代码完全相同),但从未出现过错误。所以它和Windows有关系吗?
首先,您应该尝试显示有关bug的更多信息。使用-vvv选项获得用于调试的完整输出。