ASPLinux Community
Сообщество пользователей Linux
FAQHCLФорум / ОбщийWikiLinuxStartОткрытки
Google

Pinnacle DC10 Plus Howto и некоторые программы для работы с видео

Автор: http://genphys.phys.msu.su/~dmitriy/
Дата: 17 октября 2003 г.
Последние изменения: 16 декабря 2003 г.

В этом тексте описывается установка Linux Video Studio (программа обрабоки видеофайлов под Linux), bigphysarea patch, xawtv и motv на ASPLinux 9 c ядром Linux 2.4.20-9, для карты аппаратного видеозахвата Pinnacle DC10 Plus на чипах zoran 36060, 36067 и saa711. Все, что тут описано, работает при стандартной установке ASPLinux 9 (версия для разработки).

Содержание

1 Pinnacle DC10 Plus

Чтобы установить карту Pinnacle DC10 Plus на чипах zoran 36060/36067 и saa711 необходимо с сайта http://mjpeg.sourceforge.net/ скачать driver-zoran-0.9.4.tar.gz и распаковать его. Затем в файле zoran_driver.c (исправить код драйвера необходимо для ядра Red Hat® Linux, в других дистрибутивах должно работать без исправлений) строку №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].

2 bigphysarea patch

Если Вам необходимо использовать xawtv или motv для видеозаписи или получать скриншоты в режиме overlay (без синих экранов :), то необходимо установить bigphysarea patch. Во время компилирования пропатченного ядра (а перед этим очень внимательного прочтения README, поставляющегося с ядерным патчем) выскочит ошибка, с комментариями, из которых следует, что в одном из файлов (будет сказано в каком) надо заменить в блоке #define malloc.h на slab.h. Далее необходимо освободить память, передав при загрузке параметр ядру:

mem=xxxM bigphysarea=4096

Как прописывать эту команде в загрузчике, сказано в описаниях к zoran_driver В ASPLinux 9 же это делается так (кусок текста из /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 мегабайт оперативной памяти для работы с буферами, использующимися для нужд оцифровки видео.

После корректной загрузки системы вы можете проверить наличие свободной памяти

$ 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

Может так сложиться, что у вас возникнут проблемы, при kernet boot options bigphysarea=4096, такого толка:

$ 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

Избежать этой ошибки можно, указав ядру параметр mem=xxxM, помимо bigphysarea=4096. Однако Ronald Bultje (rbultje[dig]ronald[point]bitfreak[point]net Linux Video/Multimedia developer), разработчик последней версии драйвера для Pinnacle DC10 Plus, предлагает пойти иным путем:

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 9 xawtv (т.к. он не содержит motv). Далее надо скачать c сайта xawtv последнюю версию программы xawtv (в исходники уже включен motv) и установить её. При установке родного пакета может потребоваться библиотека sys/asoundlib.h, которая содержится в пакете alsa-lib-devel, поставляющемся ASPLinux 9 (второй пакет нужен для совместимости):

$ 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%]

Собственно все это выглядит как-то так:

xawtv
Рис. 1. xawtv.
motv
Рис. 2. motv.

4 Linux Video Studio

Чтобы установить Linux Video Studio необходимо установить 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.

После проделанных операций необходимо установить Linux Video Studio и заниматься полноценной записью и монтажем видео под Linux :)

Внешне Linux Video Studio выглядит так
Рис. 3. Внешне Linux Video Studio выглядит так.

5 Дополнительно

Описанное наверняка пройдет и под другими версиями Linux.

Чтобы устроить широковещание в сети (локальной или Internet) можно воспользоваться, например, програмным обеспечением palantir. Сервер под Linux и клиенты под MS 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/ Я его не писал и 
поэтому ничего определённого сказать не могу. Вообще, я его 
ещё не пробовал... Однако, если мне не изменяет память, там 
такая возможность закладывалась, а следовательно - должно 
быть сделано более аккуратно. Поэтому советую попробовать. 
Тем более, что мой драйвер с новыми ядрами может и не 
работать.

Сергей.

6 Ссылки

  1. Программы для работы с видео в Linux
  2. Обработка и создание видео в Linux (video mpeg divx image)
  3. LinuxBegin: Multimedia (Видео, звук, графика, ...)
  4. Виртуальная энциклопедия «Linux по-русски»: Мультимедиа для Линукс: Видео