Была у меня работа: надо было сделать систему удаленной смены видеоконтента, показываемого на тв плазмах в бутике. Вроде бы все просто, вариантов реализации не мало. Но была еще одна задача: на сдвоенных плазмах нужно было реализовать показ одного видео на двух мониторах, то есть видео должны быть растянуто по ширине на двух мониторах, подключенных к одному Mac Mini. Как оказалось, существует не так много бесплатного софта для реализации video wall под OS X.

VLC

Для начала я попробовал VLC. У него лично для меня было два плюса: хорошая поддержка вызова из коммандной строки и поддержка video wall. Вот только во второй версии они этот самый video wall поломали, по этому я использовал версию 1.1.4. Забегая вперед, расскажу, что заставить работать нормально так и не вышло.
Запустить видео с поддержкой показа на двух мониторах, можно как настроив из GUI, так и добавив пару параметров при вызове из коммандной строки. Разницы абсолютно никакой, я сейчас расмотрю настройку из GUI.

  • Настройки –> Показать все –> Видео Отмечаем галочкой “Полноэкранный вывод видео”.
  • Видео –> Фильтры
    Отмечаем галочкой Wall Video Filter.
  • Видео –> Фильтры –> Стена из изображений
    Указывем количество мониторов и другие настройки.

И в первый раз у меня действительно это получилось. Открыл видео – оно в полноэкранном режиме растянуто на двух мониторах.
Но есть удивительный баг: если даже просто отключить монитор от Mac и обратно его подключить, все ломается. Открываешь видео, а отображается только левая его часть, и то на правом мониторе. Или вообще ничего не показывается. Как я только не менял настройки, помогло лишь удаление /Library/Preferences/com.apple.windowserver.plist и перезагрузка. Но это работает до тех пор, пока снова не отключишь монитор. Так что не наш выбор

MPlayer

У MPlayer есть интересный параметр: —xineramascreen. Он позволяет выбрать монитор на котором будет воспроизводится видео. То есть mplayer --xineramascreen 0 Воспроизводить на первом мониторе, mplayer --xineramascreen 1 – на правом. Но mplayer --xineramascreen -2 должно воспроизводить на всех мониторах одновременно. Должно, но воспроизводит ровно так, как будто этого параметра нет. Гугл говорит о том, что оно так ни у кого не работает. Но я не сдавался: пробовал разные сборки mplayer: MPlayer OSX Extended, MPlayerX, Mplayer2, собирал с помощью Macports и Homebrew – ничто не смогло заработать так, как это нужно было.

MSAQTPlayer

И только после всех этих мучений я наткнулся на MSAQTPlayer. Маленькая программа, которая умеет только одно: воспроизводить видео одновременно на всех подключенных мониторах. Правда реализована она весьма странно: она воспроизводит видео, путь до которого прописан в ее preferences.plist, по другому (То есть через “Открыть в программе” из Finder или open -a MSAQTPlayer /путь/до/файла") никак видео она не открывает. Весьма странный подход. Настроек минимум: fullscreen, in front, autoplay и loop, но большего и не надо.

Работает просто прекрасно, пусть и написана в 2008ом году, использует обычный QuickTime. Только одна проблема: ибо путь к файлу у него в preferences.plist, а видео надо менять удаленно, пришлось делать генерацию этого самого preferences.plsit, в котором прописывается путь до нового файла на удаленной машине, которая копирует его с замной на место старого и выполняет open -a MSAQTPlayer через SSH.

Комментарии