Настройка MainActor. Нелинейный монтаж видео во FreeBSD


Цель данной статьи не показать как настроить конкретную программу кратчайшим путем, а привести алгоритм настройки, позволяющий настроить не только данную версию, но и все последующие (или предидущие) без оглядки на версию FreeBSD.

MainActor поставляется только для Linux. Значит нужен линукс эмулятор.

Для начала определимся с тем, какой линукс эмулятор нужен для запуска программы. На сайте производителя (www.mainconcept.com) есть несколько версий. Я выбрал для Linux SuSE. Данный выбор обусловлен тем, что на сайте по поиску rpm-пакетов (rpm.pbone.net) именно для этого дистрибутива был наилучший выбор.

ЗАМЕЧАНИЕ: К выбору дистрибутива нужно подойти со всей ответственностью. В основном это связано с тем, что дистрибутив комплектуется определенными версиями ядра, библиотек, компилятора. Что накладывает ограничения на использование исполняемых файлов, собранных для других дистрибутивов.

Итак начнем. Все действия необходимо производить из под пользователя root. Загружаем файл mainactor-5.5.7-suse_9.2.i686.rpm для Linux SuSE 9.2 . Следовательно и linux_base нам нужен для этого дистрибутива.
cd /usr/ports/emulators/linux_base-suse-9.2
make install clean

Так как MainActor работает исключительно под X Window, то сразу поставим из портов библиотеки, которые пригодятся для работы. К тому же это сохранит некоторое количество времени, а может и нервов (и это рекомендуется сделать в файле pkg-descr linux_base-suse-9.2).
cd /usr/ports/x11/linux-XFree86-libs
make install clean

Теперь разрешим загрузку модуля linux.ko. Для чего добавим такую строку в /etc/rc.conf
linux_enable="YES"

А так же добавим монтирование linproc на этапе загрузки системы. Добавим строку в /etc/fstab
linproc /compat/linux/proc linprocfs rw 0 0

Осталось загрузить модуль вручную и примонтировать linproc
kldload linux.ko
mount -a

Или же просто выполнить перезагрузку.

Основа готова. Теперь приступим к установке самого MainActor.
rpm --install --root /compat/linux/ --ignoreos --ignorearch mainactor-5.5.7-suse_9.2.i686.rpm
error: failed dependencies:
libavc1394 is needed by MainActor-5.5.7-suse_9.2
libraw1394 is needed by MainActor-5.5.7-suse_9.2
SDL is needed by MainActor-5.5.7-suse_9.2

Теперь по очереди добавляем требуемые для инсталляции зависимости.
rpm --install --root /compat/linux/ --ignoreos --ignorearch SDL-1.2.8-1.i386.rpm
rpm --install --root /compat/linux/ --ignoreos --ignorearch libraw1394-1.2.0-1.pm.2.i586.rp
rpm --install --root /compat/linux/ --ignoreos --ignorearch libavc1394-0.5.0-1.pm.1.i586.rpm

И пробуем ставить сам MainActor
rpm --install --root /compat/linux/ --ignoreos --ignorearch mainactor-5.5.7-suse_9.2.i686.rpm

Теперь проверим всех ли библиотек хватает для запуска:
cd /compat/linux/opt/MainActor_V5
ldd mactor | grep "not found"
libpng.so.3 => not found
libGL.so.1 => not found
libfreetype.so.6 => not found
libfreetype.so.6 => not found
libfreetype.so.6 => not found

Ищем на сайте www.rpm.pbone.net в какой пакет входят нужные библиотеки и устанваливаем. Например:
rpm --install --root /compat/linux/ --ignoreos --ignorearch libpng-1.2.6-4.i586.rpm
error: failed dependencies:
libz.so.1 is needed by libpng-1.2.6-4

Поиск дает, что libz.so.1 для SuSE 9.2 это zlib-1.2.1-74.i586.rpm
rpm --install --root /compat/linux/ --ignoreos --ignorearch --nodeps zlib-1.2.1-74.i586.rpm
rpm --install --root /compat/linux/ --ignoreos --ignorearch libpng-1.2.6-4.i586.rp

В случае libGL.so.1 я поступил следующим образом. С помощью Midnight Commander открыл rpm-пакет XFree86-Mesa-4.3.99.902-40.i586.rpm, зашел в CONTENTS.cpio, нашел необоходимые библиотеки и скопировал их в /compat/linux/lib, а затем создал на них символические ссылки.
ln -s libGL.so.1.2 libGL.so.1
ln -s libGLU.so.1.3 libGLU.so.1
ln -s libGL.so.1 libMesaGLU.so.3
ln -s libGLU.so.1 libMesaGLU.so.3
ln -s libOSMesa.so.4.0 libOSMesa.so.4

В этом случае оправданием может служить то, что нам нужны только несколько библиотек для запуска приложения.

Далее по накатанной дорожке
rpm --install --root /compat/linux/ --ignoreos --ignorearch freetype2-2.1.9-3.i586.rpm

Итак проверяем все ли мы сделали
ldd mactor | grep "not found"

Добавим еще одно удобство
ln -s /compat/linux/opt/MainActor_V5/mactor /usr/local/bin/mactor

Осталось добавить IEEE1394 карту. Для этого необходимо внести в ядро опцию
device firewire

и пересобрать ядро. Или же загрузить модуль firewire
kldload firewire
kldstat

В списке должен быть модель firewire.ko. Для автоматической загрузки этого модуля нужно добавить в /boot/loader.conf (если нет, то создать) строку
firewire_load="YES"

Для захвата видео потока с dv видеокамеры нужно выполнить комманду
fwcontrol -R original.dv

После чего на видиокамере нажать воспроизведение с кассеты. fwcontrol не пишет ничего в файл, если нет видеопотока.

Вот собственно и все. Удачного творчества.

http://wiki.bsdportal.ru/doc:mactor

Обновлено: 12.03.2015