Я использую vlcj для захвата экрана в моей программе Java. Поэтому я использую следующий код:Захват с помощью vlcj дает только поврежденный видеофайл
public static void main(final String[] args) {
NativeLibrary.addSearchPath("vlc", "/Applications/VLC.app/Contents/MacOS/lib/");
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new CaptureTest().start("screen://");
}
});
}
public CaptureTest() {
factory = new MediaPlayerFactory();
mediaPlayer = (HeadlessMediaPlayer) factory.newMediaPlayer();
}
private void start(String mrl) {
File dir = new File(System.getProperty("user.home"), "Videos");
dir.mkdirs();
DateFormat df = new SimpleDateFormat("yyyyMMdd-HHmmss");
String fileName = dir.getAbsolutePath() + "/Capture-" + df.format(new Date()) + ".mp4";
String[] options = {
":sout=#transcode{vcodec=h264,acodec=mp4a}:std{mux=mp4,access=file,dst=" + fileName + "}", ":input-slave=screen://"
};
mediaPlayer.playMedia(mrl, options);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
mediaPlayer.stop();
mediaPlayer.release();
}
Проблема заключается в том, что выходной видеофайл составляет всего 4 КБ, и вы не можете его воспроизвести. Может кто-нибудь мне помочь? Я на Mac OS 10.6.8 и я использую VLC 1.1.12 и 1.1.5 vlcj
Вы хотите сделать screencasting с VLC? –
Вы протестировали параметр команды: sout с помощью самой команды VLC, а не Java, чтобы убедиться, что она работает правильно или нет на вашем компьютере? –
Если это не сработает, попробуйте параметр командной строки VLC, указанный в следующей ссылке: http://opensource.about.com/od/tutorials/ss/How-To-Capture-A-Screencast-Using-Vlc_6. htm –