VLC не может открыть th MRL при использовании vlcj в Java

#java #javafx #vlcj

#java #javafx #vlcj

Вопрос:

Я пытаюсь запустить приложение vljc-javafx-demo и сталкиваюсь со следующей проблемой:

 [00007f9884007300] v4l2 demux error: cannot open device '/dev/video0 ': No such file or directory
[00007f9884007300] v4l2 demux error: cannot open device '/dev/video0 ': No such file or directory
[00007f9884007300] v4l2 demux error: cannot open device '/dev/video0 ': No such file or directory
[00007f9884007300] v4l2 demux error: cannot open device '/dev/video0 ': No such file or directory
[00007f9884013920] v4l2 stream error: cannot open device '/dev/video0 ': No such file or directory
[00007f9884013920] v4l2 stream error: cannot open device '/dev/video0 ': No such file or directory
[00007f989820af20] main input error: Your input can't be opened
[00007f989820af20] main input error: VLC is unable to open the MRL 'v4l2:///dev/video0 :v4l2-width=3840 :v4l2-height=2160'. Check the log for details.
  

Когда я выдаю следующее из командной строки, оно работает отлично:

 vlc v4l2:///dev/video0 :v4l2-width=3840 :v4l2-height=2160
  

Это минимальный MRL, который будет работать с этим новым устройством захвата (Magewell Eco Capture HDMI 4K M2.2). Я использую библиотеки FFmpegFrameGrabber и OpenCV от Bytedeco, но я надеюсь повысить производительность с помощью этой библиотеки, если смогу заставить ее работать.

Что касается «Проверьте журнал для получения подробной информации», насколько я могу судить, нигде ничего не регистрируется. Я настроил VLC для входа в файл и в системный журнал, и это демонстрационное приложение ничего не генерирует.

Я добавил своего пользователя в группу видео, хотя командная строка VLC работала без моего участия в группе, и это не имело никакого эффекта.

Запуск всего этого на Ubuntu 20.04, JavaSE 14 / JavaFX 14.0.2.1, vlcj 4.7.0 vlcj-javafx 1.0.2, VLC 3.0.9.2, Eclipse 2020-06.

Спасибо за любую помощь!

Ответ №1:

MRL должен быть v4l2:// .

Затем вы используете параметры мультимедиа или аргументы MediaPlayerFactory:

 String[] args = {
    "--v4l2-dev", "/dev/video0",
    "--v4l2-width", "3840",
    "--v4l2-height", "2160"
}
  

Либо создайте MediaPlayerFactory с этими аргументами, либо передайте их в качестве параметров мультимедиа при использовании play().

Комментарии:

1. Я отвечаю по памяти, прошло некоторое время с тех пор, как я использовал устройства видеозахвата.