Вопрос или проблема
Я полный новичок в Linux (но учусь). Я пытаюсь запустить видеопрезентацию – но мне нужно, чтобы три отдельных видео MPEG или AVI воспроизводились одновременно и синхронно.
Я прочитал http://www.videolan.org/doc/play-howto/en/ch04.html, где показано, как обращаться к каждому из трёх мониторов с помощью каждого экземпляра VLC.
Функция WALL кажется интересной, но я использую 3 монитора для видеовыхода и один для панели управления (пожалуйста, извините за терминологию Windows).
Опция:
–vout позволяет выбрать модуль видеовыхода. кажется, это способ обратиться к каждому видеовыходу отдельно (ПОЖАЛУЙСТА, поправьте меня, если я не прав в этом).
Так что, что я спрашиваю, в основном, следующее: если я хочу запустить три отдельных видео на три отдельных монитора, используя Ubuntu и VLC, как я могу запустить все три одновременно, и есть ли способ синхронизировать их? (MIDI, SMPTE тайм-код и т.д.)
Мне нужен только один канал либо моно, либо стерео для воспроизведения из (скажем) первого видеофайла.
Любые мнения будут ОЧЕНЬ полезны. (Но, пожалуйста, имейте в виду, что я довольно нов в Linux, поэтому, пожалуйста, имейте терпение ко мне).
Заранее спасибо, Рик
У меня нет нескольких мониторов, так что я не могу вам помочь в этом. Что касается одновременного открытия 3 видео, то ближе всего, что я могу предложить, это использовать “&” для последовательного открытия файлов. Они не будут синхронизированы, но так как они открываются один за другим очень быстро, они будут очень близки к синхронизации, в большинстве случаев создавая незначительное эхо. Конечно, это предполагает, что видеофайлы не нагружают систему и что они хранятся на устройстве хранения, способном обеспечить необходимую пропускную способность для трех видео одновременно. Если нет, то расхождение между воспроизведениям будет более заметным. Например, я протестировал это с двумя 1080p 70mb mp4 файлами в виртуальной машине, и они почти были синхронны, незначительное эхо было единственным свидетельством того, что это не так. Однако, когда я попытался запустить 3, разрыв стал больше, потому что это было 1080p видео, работающее в 3 экземплярах в виртуальной машине, а виртуальные машины не дают хорошую производительность. Имейте в виду, что это поможет вам только открыть файл, это не даст вам контроля над тем, где видео появится на вашем экране рабочего стола. Я полагаю, по умолчанию они наслаиваются друг на друга.
Пример (предполагается, что видеофайл называется “example” и находится в папке загрузок вашего пользователя):
“vlc /home/username/Downloads/example.mp4 & vlc /home/username/Downloads/example2.mp4 & vlc /home/username/Downloads/example3.mp4”
Вот один из способов, но вы можете сделать это более продвинуто, создав shell-скрипт, который делает это:
- Запустите экземпляр VLC через командную строку, сохраните их PID.
- Используйте
wmctrl
, чтобы получить WID для каждого окна VLC и сохраните их. - Используйте
wmctrl
, чтобы переместить окно или даже используйтеxdotool
, чтобы отправить необходимые клавиши для этого, как макрос. - Используйте
xdotool
, чтобы отправить сигнал клавиши для каждого экземпляра окна, чтобы воспроизвести в одно и то же время, разница должна составлять миллисекунды.xdotool
может отправить это в одной команде.
Вы можете далеко продвинуться, используя Спецификацию удаленного интерфейса медиаплеера (MPRIS), или упростить процесс, выполняя некоторые шаги вручную. Держите время/выгоду в балансе.
Ответ или решение
Запуск нескольких экземпляров VLC в Linux
Введение
Вы хотите запустить три отдельных видеопотока на трех мониторах, используя VLC в Ubuntu. Это задача вполне осуществима, но требует понимания некоторых командных параметров и инструментов, доступных в Linux. В этой статье мы подробно рассмотрим, как можно запустить несколько экземпляров VLC и синхронизировать их воспроизведение.
Шаг 1: Подготовка
Для начала убедитесь, что VLC установлен на вашем компьютере. Вы можете установить его с помощью следующей команды:
sudo apt-get install vlc
Шаг 2: Запуск экземпляров VLC для нескольких видео
Чтобы запустить несколько экземпляров VLC, необходимо указать файлы видео и их параметры. Предположим, у вас есть три видеофайла: video1.mp4
, video2.mp4
и video3.mp4
. Вы можете запустить их одновременно с помощью следующей команды:
vlc --fullscreen --video-x=0 --video-y=0 /путь/к/video1.mp4 & \
vlc --fullscreen --video-x=1920 --video-y=0 /путь/к/video2.mp4 & \
vlc --fullscreen --video-x=3840 --video-y=0 /путь/к/video3.mp4 &
Здесь --video-x
и --video-y
устанавливают позиции каждого видео на экране, где 1920
и 3840
— это предполагаемые координаты для 1920×1080 мониторов в режиме "горизонтал".
Шаг 3: Синхронизация воспроизведения
Синхронизация нескольких видео может быть сложной задачей. Каждый экземпляр VLC не предоставляет встроенных средств для точной синхронизации, но есть несколько подходов, которые могут позволить вам добиться желаемого эффекта.
- Использование
xdotool
: Это инструмент, который позволяет эмулировать нажатия клавиш и управлять окнами. Вы можете запустить VLC и сразу же отправить команду воспроизведения для каждого экземпляра с небольшими задержками.
Пример скрипта:
#!/bin/bash
vlc --fullscreen --video-x=0 --video-y=0 /путь/к/video1.mp4 &
PID1=$!
vlc --fullscreen --video-x=1920 --video-y=0 /путь/к/video2.mp4 &
PID2=$!
vlc --fullscreen --video-x=3840 --video-y=0 /путь/к/video3.mp4 &
PID3=$!
# Небольшая пауза для завершения инициализации
sleep 1
# Отправка нажатия клавиши "play" каждой программе
xdotool windowactivate $PID1 windowfocus type " " &
xdotool windowactivate $PID2 windowfocus type " " &
xdotool windowactivate $PID3 windowfocus type " " &
- MPRIS: Если вам нужно более продвинутое управление, рассмотрите использование Media Player Remote Interfacing Specification (MPRIS). Это позволит вам высокой степени контроля над VLC, и позволяет интеграцию с другими инструментами или оболочками.
Шаг 4: Использование одного канала аудио
Для воспроизведения только одного канала для аудио, вы можете просто использовать ключ --audio-file
для каждого экземпляра VLC, указывая только на первый файл. Например:
vlc --fullscreen --video-x=0 --video-y=0 --audio-file=/путь/к/audio.mp3 /путь/к/video1.mp4 &
Заключение
Запуск и синхронизация нескольких экземпляров VLC на Ubuntu требует некоторого понимания командной строки и использования дополнительных инструментов, таких как xdotool
и MPRIS
. Постарайтесь протестировать предложенные решения, чтобы достичь желаемой синхронизации видео. Не забывайте, что точная синхронизация может потребовать настройки параметров в зависимости от характеристик вашего железа и видеофайлов. Удачи в вашем проекте!