В этом тексте описывается установка Linux Video Studio (программы обрабоки видеофайлов под Linux), bigphysarea patch, Xawtv и Motv на ASPLinux9 c ядром 2.4.20-9, для карточки аппаратного видеозахвата Pinnacle Studio DC10 Plus на чипах zoran 36060 , 36067 и saa711. Все, что тут описано, работает при стандартной установке ASPLinux9(версия для разработки).
1) Чтобы установить карточку Pinnacle Studio DC10 Plus на чипах zoran
36060/67 и saa711 необходимо на mjpeg.sourceforge.net
скачать driver-zoran-0.9.4.tar.gz и распаковать его,
затем в файле zoran_driver.c(хачить драйвер необходимо
для ядра редхата, в других линухах вроде работает без хака) строчку(под номером
4512)
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
изменить на строчку
#if 0
Далее установить исходники ядра и в файле /usr/src/[linux-version]/Makefile в строке 4 заменить
EXTRAVERSION = -9aspcustom
на
EXTRAVERSION = -9asptest
или любое другое. Смысл с том, чтобы убрать custom(это важно!!!
на custom не будет грузиться драйвер). Далее нужно сказать
make oldconfig dep clean bzImage modules modules_install install
Далее в файле /etc/X11/XF86Config в
секции Module необходимо написать строчку, которая
загрузит video4linux в X-сервер:
Load "v4l" # Video4Linux
После установки ядра нужно зайти в директорию driver-zoran-0.9.4, сказать make, после этого необходимо ввести строчку ./update dc10plus PAL и будут загружены стандартные драйвера для видеокарты. После загруки драйверов необходимо перезапустить X-сервер(или наладить автоматическую загрузку драйверов до запуска X-сервера) при помощи комбинаций клавиш Ctrl+Shift+BackSpace.
Если Вам необходимо использовать xawtv или motv для видеозаписи или получать скриншоты
в режиме overlay (без синих экранов :), то необходимо
установить bigphysarea
patch. Во время компилирования пропатченного ядра (а перед этим очень внимательного прочтения
README, поставляющегося с ядерным патчем) выскочит ошибка, с комментариями, из которых следует, что в одном из файлов
(будет сказано в каком) надо заменить в блоке #define malloc.h на slab.h. Далее надо
собственно освободить память, дав при загрузке ядра команду:
mem=xxxM bigphysarea=4096
Как прописывать эту команде в загрузчике, сказано в описаниях к zoran_driver
В ASPLinux9 же это делается так(кусок текста из /etc/aspldr.conf):
[linux1067443216@Linux(2.4.20-20.9observ)]
icon linux
kernel /boot/vmlinuz-2.4.20-20.9observ mem=235M bigphysarea=4096 root=/dev/hda6 ro
initrd /boot/initrd-2.4.20-20.9observ.img
где xxxM это разница в мегабайтах
между размером оперативной памяти и памяти, которую Вы хотите высвободить для
работы с видео. bigphysarea=4096 означает, что ядром
будет выделено 16 мегабайт оперативной памяти для работы с буферами,
использующимися для нужд оцифровки видео. После корректной загрузки системы вы
можете проверить наличие свободной памяти
[vilfred@mobile100 vilfred]$ cat /proc/bigphysarea
Big physical area, size 4096 kB
free list: used list:
number of blocks: 1 0
size of largest block: 4096 kB 0 kB
total: 4096 kB 0 kB
[vilfred@mobile100 vilfred]$
Для автзагрузки до запуска X в файле /etc/modules.conf надо явно указать размер буфера:
options zoran card=2 v4l_bufsize=4096
alias char-major-81-0 zoran
alias char-major-81 zr36067
Может сложиться, что у вас возникнут проблемы такого толка:
tail -f /var/log/messages:
Oct 19 16:54:52 mobile100 kernel: DC10plus[0]: v4l_set_format() - video
buffer size (128 kB) is too small
при kernet boot options
bigphysarea=4096
избежать этой ошибки можно, указав ядру параметром помимо bigphysarea=4096 дополнительную опцию mem=xxxM
Однако Ronald Bultje
(rbultje[dig]ronald[point]bitfreak[point]net Linux Video/Multimedia developer),
разработчик последней версии драйвера для dc10plus, предлагает пойти иным путем:
However, you need to "make clean && make" in the
driver sources to recompile it with bigphysarea support, too.
т.е. эта ошибка (не позволяющая делать скриншоты в Xawtv и Motv при overlay) может быть вызвана тем, что после перекомпиляции ядра с поддержкой bigphysarea необходимо также перекомпилировать и zoran_driver, т.к. он был скомпилирован под прежнее ядро.
3) XawTv и Motv.
Для установки Xawtv и Motv необходимо сначала удалить родной для ASPLinux xawtv (т.к. он не содержит motv). Далее надо скачать c сайта XawTv последнюю версию программы xawtv (в исходники уже включен motv)
и установить её. При установке родного xawtv может
потребоваться библиотека sys/asoundlib.h, которая
содержится в пакете alsa-lib-devel, поставляющемся
ASPLinux (второй пакет нужен для совместимости):
[root@mobile100 video1]# rpm -Uhv alsa-lib-devel-0.9.6-1asp.i386.rpm
alsa-driver-headers-0.9.6-1.9asp.i386.rpm
Подготовка... ###########################################
[100%]
1:alsa-driver-headers ########################################### [ 50%]
2:alsa-lib-devel ########################################### [100%]
[root@mobile100 video1]#
Собственно все это выглядит как-то так:
XawTV | Motv |
4) Чтобы установить Linux Video Studio(http://ronald.bitfreak.net/) необходимо установить jpeg-mmx-0.1.4.tar.gz
после ./configure и make сказать make install, а затем
сказать(это важно, установщик jpeg-mmx не копирует файл
jpegint.h в директорию /usr/local/include/, а это необходимо программе libmovtar, которая, в свою очередь, необходима для mjpegtools, без которых не будет работать Linux Video Studio)
cp jpegint.h /usr/local/include/
далее нужно установить libmovtar-0.1.3.tar.gz и после этого установить mjpegtools-1.6.1.90.tar.gz
После проделанных операций необходимо установить linuxvideostudio-0.1.7 и заниматься полноценным записью и монтажем видео под Linux :)
Описанное наверняка пройдет и под другими версиями Linux.
Чтобы устроить броадкаст вещание в сети(локальной или internet) можно воспользоваться, например, програмным обеспечением palantir. Сервер под Linux и клиенты под Windows и Linux прилагаются.
Cергей
Миридонов, автор самой первой версии драйвера для чипов zoran, пишет, что
возможно использовать две программы для overlay и для записи видеофайлов: On Thursday 18 September 2003 18:11, you wrote:
>> А можно ли сделать так, чтобы повесить на 1 устройство
>> видеозахвата две(например) программы одновременно?
>> Допустим одна пишет, а другая параллельно ей overlay
>> осуществляет, чтобы конторлировать, что пишется на диск.
>> тоесть запустить одновременно xawtv и lavrec например?
>> Может быть вы где-то встречались с такими штуками?
В моём драйвере на
http://www.cicese.mx/~mirsev/Linux/DC10plus/ такое можно
делать, хотя никаких гарантий, что ничего не слетит - я
дать не могу. Там это как durty hack было. У меня
работало... Сначала надо запустить xawtv, чтобы смотреть, а
потом - lavrec. Точно также можно было и смотреть видео с
диска.
Сейчас есть новый драйвер на
http://mjpeg.sourceforge.net/driver-zoran/ Я его не писал и
поэтому ничего определённого сказать не могу. Вообще, я его
ещё не пробовал... Однако, если мне не изменяет память, там
такая возможность закладывалась, а следовательно - должно
быть сделано более аккуратно. Поэтому советую попробовать.
Тем более, что мой драйвер с новыми ядрами может и не
работать.
Сергей.
Linux Video Studio внешне выглядит примерно так:
Отдельное спасибо Алексею Крашенинникову за английскую версию этого howto.