|
Bog BOS: dw: Программы для работы с видео в Linux
|
Последнее изменение файла: 2012.11.25
Скопировано с www.bog.pp.ru: 2024.11.23
Bog BOS: dw: Программы для работы с видео в Linux
Порядок установки программ и предварительная установка необходимых пакетов из дистрибутива
(в т.ч. *-devel) очень важны, т.к. при сборке скрипты ./configure проверяют
наличие необходимых для реализации части функций библиотек и, если
библиотека отсутствует, то собранная программа не будет иметь соответствующих
функций. Например, если перед установкой mplayer
не установить пакет работы с пультом ДУ Lirc,
то mplayer будет собран без возможности управления с пульта ДУ.
Внимательно следите за сообщениями, выдаваемыми ./configure!
Предварительные действия:
- установка Fedora 10
или Fedora Core 6
или Fedora Core 3
или Red Hat Linux 8.0
(со всеми указанными библиотеками!)
- настройка дополнительных репозитариев yum
для F10 (rpmfusion-free, rpmfusion-nonfree, russianfedora-fixes,
russianfedora-free, russianfedora-nonfree), для FC6 (livna, freshrpms) и для FC3 (at, dag),
чтобы можно было устанавливать уже готовые пакеты
- установить правильный
драйвер видеокарты NVIDIA
(в т.ч. настроить вывод на проектор
или телевизор)
- добавить /usr/local/lib в /etc/ld.so.config и сделать ldconfig
(запуск ldconfig
рекомендуется повторять после установки каждой разделяемой библиотеки,
т.к. некоторые разработчики забывают вставить соответствующую строчку
в процедуру установки)
- установить драйвера платы видеозахвата и ТВ тюнера
(v4l, v4l2)
- установить программы для работы с пультом ДУ (lirc)
- установить программы работы со сканером (sane, xsane)
- добавить загрузку v4l (/usr/X11R6/lib/modules/drivers/linux/v4l_drv) в секцию модулей
/etc/X11/XF86Config
- не забывать про SELinux: chcon -t texrel_shlib_t /usr/local/lib/*.so
- установка библиотек работы со звуком и аудиокодеков
Теперь устанавливаем по порядку (естественно, надо стараться брать самые свежие версии,
но возможны конфликты между пакетами и используемыми библиотеками):
- lzo
- xmms/audacious
- bbtool
- mkvtoolnix
- libdvdread, libdvdcss и libdvdnav
- ogle
- dvdbackup
- mpgtx
- divx4linux
- XviD
- dvdauthor
- libfame
- libm4isomedia (MPEG-4)
- gpac (MPEG-4)
- x264 (кодировщик H.264 или MPEG-4 AVC)
- mpeg2dec
- ffmpeg
- libquicktime
- dvgrab
- libdv
- zvbi
- aalib
- libcaca
- openjpeg
- avifile
- tvtime
- xanim
- mjpegtools
- transcode
- xawtv
- xine
- mplayer
- mpeg4ip
Для просмотра DVD-Video я использую ogle, для просмотра ТВ - tvtime,
для всех прочих источников - mplayer, для видеозахвата -
streamer из xawtv (в формате YUV4MPEG2) или mencoder, для обработки и сжатия -
mjpegtools или mencoder из mplayer и lame (MPEG-1 с нестандартными параметрами,
звук - MP3; в дальнейшем записывается в формате псевдо VCD/DVD).
Библиотека lzo предоставляет целый набор алгоритмов
сжатия без потерь. Среди них попадаются такие, что сжимают YUV на 25%
со скоростью 35 МБ/сек и декомпрессируют со скоростью 250 МБ/сек
(скорость memcpy() при переполнении кеша всего вдвое больше!). Наверняка, с помощью простейшего
алгоритма предсказания (db-a) можно довести коэффициент сжатия до 50%
без особой потери скорости сжатия (скорость декомпрессии упадет сильно).
Прямой конкурент zlib, если требуется большая скорость.
Имеется утилита сжатия/разжатия lzop
(.lzo).
В F10 установил пакеты lzo, lzo-minilzo и lzo-devel версии 2.03-1.fc10
и lzop версии 1.02-0.6.rc1.fc9.
В FC6 установил пакеты lzo и lzo-devel версии 2.02-2.fc6
и lzop версии 1.02-0.4.rc1.fc6 из репозитария extras.
В FC3 установил пакеты lzo и lzo-devel версии 1.08 из репозитария dag.
Установка lzo 1.08 в RH8.0:
- получить и развернуть исходные тексты
- ./configure --enable-shared
- make
- make check
- make test
- make install
- /usr/local/include/lzo*.h
- /usr/local/lib/liblzo*
Простейшие графические проигрыватели в стиле WinAmp:
xmms (GTK1) и
audacious
(GTK2, внешнее управление утилитой audtool).
xmms2 стал развиваться в сторону
клиент-серверной модели (gxmms2 на GTK2).
К сожалению, ничего не знают о местных традициях в виде ID3v1 тэгов в cp1251 и
списков с именами файлов в стиле MS Windows в непонятной кодировке.
Для F10 устанавливаем audacious, audacious-libs,
audacious-plugins, audacious-plugins-vortex, audacious-plugins-wavpack версии 1.5.1-5.fc10
и audacious-plugins-freeworld, audacious-plugins-freeworld-aac,
audacious-plugins-freeworld-alac, audacious-plugins-freeworld-mms,
audacious-plugins-freeworld-mp3, audacious-plugins-freeworld-tta,
audacious-plugins-freeworld-wma из rpmfusion версии 1.5.1-1.fc10.
Для FC6 устанавливаем xmms 1:1.2.10-29.fc6, xmms-cdread, xmms-flac, xmms-libs,
xmms-lirc, xmms-skins, xmms-speex из extras (потянули glib 1:1.2.10-26.fc6,
gtk+ 1:1.2.10-55.fc6 и mikmod 3.1.6-39.fc6), xmms-mp3 1:1.2.10-16.fc6
и xmms-wma 0:1.0.5-3.fc6 из freshrpms. Заодно поставил xmms-normalize 0.7.7-2.lvn6
(потянул libid3tag и normalize) и xmms-faad2 из репозитария livna.
Для FC6 устанавливаем audacious 1.2.2-2.fc6, audacious-devel 1.2.2-2.fc6,
audacious-libs 1.2.2-2.fc6, audacious-plugins 1.2.5-2.fc6 из extras;
audacious-plugins-nonfree-mp3 1.2.5-1.lvn6 и audacious-plugins-nonfree-wma 1.2.5-1.lvn6 из
livna (потянули libbinio, libmpcdec, libsidplay, taglib из extras),
а заодно audacious-plugins-nonfree-aac 1.2.5-1.lvn6.
Для FC3 берём пакеты xmms 1.2.10 и xmms-mp3 (и xmms-skins) из репозитария dag.
Пакет bbtool 1.7 позволяет получить подробную и очень подробную информацию о
файлах форматов MPEG, включая файлы .vob (мне он помог понять, почему не показывается второй VideoCD,
сделанный mjpegtools).
Установка (FC6, FC5, RH8):
- получить и развернуть
исходные тексты
- make
- переслать вручную в /usr/local/bin
Использование утилит:
- bbdmux имя-файла [stream-id out-file] (демультиплексирует программные
и транспортные потоки MPEG1 и MPEG2 или показывет их структуру)
- bbinfo имя-файла verbose-level
- bbainfo имя файла verbose-level
- bbvinfo имя-файла verbose-level
Пакет mkvtoolnix
позволять разобрать видеофайл в формате matroska
(матрёшка) на составные части и собрать и обратно.
Здесь же "завалялись" vc1parserб diracparser и base64tool.
Графическая оболочка умеет работать не только с .mkv.
Установка пакета mkvtoolnix и mkvtoolnix-gui (mkvinfo, mmg) версии 2.4.2-1.fc10 в F10.
Установка пакета mkvtoolnix-1.8.1 в FC6.
Полезные примеры. Извлечение "лишней" звуковой дорожки:
mkvextract tracks исходный-файл номер-лишней-дорожки:результат
mkvmerge -o результат --atracks номер-полезной-дорожки исходный-файл
Разбиение фильма на куски, граница по следующему ключевому кадру,
имя результата используется как шаблон для генерации имён кусков:
mkvmerge -o результат --split размер-куска исходный-файл
Библиотека libdvdcss
выделена, чтобы "вывести из под удара" разработчиков программ для работы с DVD.
Занимается дешифровкой DVD-Video (CSS). Управляется переменными окружения:
- DVDCSS_METHOD={title|disc|key}
- title - дешифрованный ключ фильма (title) подбирается из шифрованных секторов;
позволяет дешифровать не только диски, но и файлы;
срабатывает не всегда; не работает, если ключ изменяется посреди фильма
- disc - подбирается ключ диска, что позволяет вычислять ключи фильмов
- key - подбирается ключ диска с использованием файла,
содержащего известные ключи проигрывателя
- DVDCSS_VERBOSE={0|1|2}
В F10 установил пакеты libdvdcss и libdvdcss-devel версии 1.2.9-5.fc10
из репозитария russianfedora-free.
В FC6 установил пакеты libdvdcss и libdvdcss-devel версии 1.2.9-4.lvn6 из репозитария livna.
В FC3 установил пакеты libdvdcss и libdvdcss-devel версии 1.2.9 из репозитария dag.
Библиотека libdvdread занимается разборкой структуры DVD-VIdeo диска
(выделена из проекта ogle).
В F10 установил пакеты libdvdread и libdvdread-devel версии 4.1.3-1.fc10.
В FC6 установил пакеты libdvdread и libdvdread-devel версии 0.9.7-2.fc6 из репозитария extras.
В FC3 установил пакеты libdvdread и libdvdread-devel версии 0.9.7 из репозитария dag.
Библиотека libdvdnav
(выделена из проекта ogle) позволяет обращаться с меню на DVD-Video.
В F10 установил пакеты libdvdnav и libdvdnav-devel версии 4.1.3-1.fc10.
В FC6 установил пакеты libdvdnav и libdvdnav-devel версии 0.1.10-3.fc6
из репозитария freshrpms.
В FC3 установил пакеты libdvdnav и libdvdnav-devel версии 0.1.10
из репозитария dag.
Установка libdvdnav 0.1.3 в RH8.0:
- убедиться, что установлены пакеты libdvdread-devel и libdvdcss-devel
- получить и развернуть исходные тексты
- ./configure
- make
- make install
Если все, что вам нужно - это просмотр DVD (VCD, SVCD), а обрабатывать видео
вы и не собирались, то можете удалять все ранее описанные пакеты и не устанавливайте
никаких новых, кроме ogle!
ogle -
маленький и простоустанавливаемый проигрыватель DVD.
При этом в отличие от своих более "навороченных" собратьев (mplayer, xine, xmovie) он делает это хорошо:
умеет обрабатывать меню диска (в том числе с помощью мышки), ускоренное и замедленное
воспроизведение, автомагический выбор русской звуковой дорожки (и переключение на другую
дорожку с первого раза и без щелчка!).
Только с его помощью я увидел некоторые дополнения к фильмам. В комплекте идет программа ifo_dump.
Выбор угла зрения (angle selection) возможен только из меню DVD (хотя кнопка уже припасена).
К сожалению, развитие программы прекращено в 2003 и в связи с модным течением среди
разработчиков Gnome/KDE по прекращению поддержки совместимости с ранее разработанным ПО
функции отваливаются одна за другой.
Требуется пакет xvattr.
В F10 установил пакеты xvattr 1.3-15, ogle и ogle_gui 0.9.2-8.fc7 из
freshrpms для F8 (потребовал старую версию libdvdread).
В FC6 установил пакеты ogle, ogle-devel и ogle_gui версии 0.9.2-7.fc6
из репозитария freshrpms.
В FC3 установил пакеты ogle, ogle-devel и ogle_gui версии 0.9.2
из репозитария dag. Проблемы с ALSA, поэтому поменял alsa на oss в /usr/share/ogle/oglerc.
Установка ogle 0.9.0 в RH8.0 из
RPM
- rpm -iv ogle-0.9.0-ogle1.i586.rpm ogle-devel-0.9.0-ogle1.i586.rpm ogle_gui-0.9.0-ogle1.i386.rpm xvattr-1.3-ogle1.i386.rpm
Пакет dvdbackup позволяет узнать структуру DVD-Video
и скопировать весь или часть фильма (что-то он туда добавляет лишнего).
Не поддерживается с 2002 года и потерял совместимость с текущей версией используемой библиотеки
В F10 устанавливать не стал.
Установка dvdbackup 0.1.1 в FC6:
- получить и развернуть исходные тексты
- вставить в dvdbackup.c перед первым включением dvdread/... строку
#include <stdint.h>
- UDFFindFile не экспортируется из libdvdread 0.9.5 и выше
В FC3 установил пакет dvdbackup-0.1.1 из репозитария dag.
Установка dvdbackup 0.1.1 в RH8.0:
- получить и развернуть исходные тексты
- gcc dvdbackup.c -o dvdbackup -ldvdread
- cp -i dvdbackup /usr/local/bin/
Использование утилиты:
- посмотреть структуру диска:
dvdbackup -i /dev/dvd -I
- скопировать группу заголовков (title set):
dvdbackup -i /dev/dvd -T 2 -o куда
- скопировать заголовок (title):
dvdbackup -i /dev/dvd -t 2 -o куда
- скопировать части заголовка (chapter):
dvdbackup -i /dev/dvd -t 2 -s 20 -e 25 -o куда
Пакет mpgtx позволяет
демультиплексировать потоки MPEG1 (системные) и MPEG2 (программные и
транспортные), разбивать их, а также элементарные аудио и видео потоки
на части (по границам GOP) или сливать потоки в один,
получение информации, редактирование меток (id3 tag) MPEG1 audio layer 3.
В F10 установил пакет mpgtx версии 1.3.1-4.fc10 из репозитария rpmfusion-free.
В FC6 установил пакет mpgtx версии 1.3.1-2.lvn6 из репозитария livna.
В FC3 установил пакет mpgtx версии 1.3.1 из репозитария livna.
Установка mpgtx 1.3 в RH8.0:
- получить и развернуть исходные тексты
- ./configure
- уменьшить оптимизацию с -O3 до -O2 (проблемы с gcc 3.2)
- make
Использование утилит (в действительности, это ссылки на одну программу mpgtx):
- mpgjoin (объединение потоков)
- mpgsplit (разбиение потока)
- mpginfo (получение информации о потоке)
- mpgdemux (демультиплексирование потока)
- tagmp3 (редактирование меток id3)
Поставляется в виде разделяемых библиотек для кодирования
и декодирования файлов в формате DivX.
Я всегда с сомнением относился к этим ребятам,
которые первоначально взяли
входящие в состав стандарта MPEG4 (ISO/IEC 14496) исходные тексты (которые
лежат в свободном доступе!) и, изображая таинственных "кул хацкеров",
ограбивших MS, распространяют их исключительно в бинарном виде (коды
действительно принадлежат MS, но их может взять любой на сайте
ISO).
При этом они несколько раз меняли формат данных, так что по мере
распространения настоящего формата хранения MPEG4 будет трудно найти
проигрыватель видеофильмов в формате DivX3. Кстати, если взять в качестве
источника цифровое видео с DVD и закодировать его в формате MPEG1 со звуком
в формате MP3 и ключевыми кадрами пореже (1/300 вместо обычных 1/15), то,
записав его в виде VideoCD (это добавляет 15% емкости CD), можно получить
качество сравнимое с DivX.
В F10 и FC6 не устанавливал.
В FC3 установил пакеты divx4linux и divx4linux-devel
версии 5.0.5 из репозитария at.
Установка 5.0.1 в RH8.0:
- получить divx4linux501-20020418 с сайта DivX
- ./install.sh
- /usr/local/lib/libdivxdecore.so
- /usr/local/lib/libdivxencore.so
- /usr/local/include/decore.h
- /usr/local/include/encore2.h
XviD представляет собой реализацию
MPEG-4 (профили Simple и Advanced Simple) с открытыми исходными текстами
(которые некоторые "солидные" изготовители программ и оборудования
для обработки видео тихонечко включают в свои системы).
В F10 установил пакеты xvidcore и xvidcore-devel
версии 1.2.1-1.fc10 из репозитария rpmfusion-free.
В FC6 установил пакеты xvidcore (сюда вошёл libxvidcore4) и xvidcore-devel
(а здесь отсутствует libxvidcore.a) версии 1.1.2-1.lvn6 из репозитария livna.
В FC3 установил пакеты libxvidcore4, xvidcore и xvidcore-devel
версии 1.0.3 из репозитария at.
Установка XviD 0.9 в RH8.0:
- получить и развернуть исходные тексты xvidcore-0.9.0.tar
- зайти в build/generic
- скопировать Makefile.linuxx86 в Makefile и отредактировать
- make
- make install
- скопировать src/divx4.h и src/xvid.h в /usr/local/include
(после этого mplayer собирается с xvid вместо divx4linux)
Консольная утилита dvdauthor
позволяет преобразовать набор MPEG-2 PS с VOBU (DVD NAV) пакетами
(создаются с помощью "mplax -f 8", "mplayer -mpegopts format=dvd") в стандартный каталог DVD-Video.
В F10 установил пакет dvdauthor версии 0.6.14-6.fc10.
В FC6 установил пакет dvdauthor версии 0.6.13-1.fc6 (0.6.14-1) из репозитария extras.
В FC3 установил пакет dvdauthor версии 0.6.11 из репозитария livna.
Утилита dvdauthor считывает формат будущего DVD-Video диска из XML-файла
с описанием (ключ -x), каталог с результирующей файловой структурой DVD-Video задаётся ключом "-o".
Для описания формата необходимо представление о логической структуре DVD-Video:
- диск состоит из наборов фильмов (titleset) и главного набора меню
(VMGM, TOC menu, top level menu, title menu)
- набор фильмов может состоять из фильмов (title) и меню (VTS menu)
- фильм может быть поделён на части (chapter)
- фильмы и меню из одного набора должны иметь одинаковые характеристики звука, видео и субтитров
- из VMGM можно получить доступ к меню и фильмам из любого набора
- из обычного меню - только к фильмам из текущего набора
- код языка задаётся в соответствии с ISO 639: ru, en
- pgcgroup (pgc) обобщённое наименование для отдельного меню или фильма
- pgc может содержать видеодорожку, до 8 звуковых дорожек, до 32 субтитров
- устройство DVD может выполнять команды виртуальной машины
- команды разделяются символом ';'
- C-подобные выражения
- блоки в фигурных скобках
- операторы
- переменная=выражение;
- if (выражение) блок; [else блок;]
- {call | jump} { vmgm menu | titleset номер menu [номер | entry имя] | titleset номер title номер [chapter номер]} ;
- resume;
- разрядность переменных - 16 бит; до 16 общих регистров;
dvdauthor резервирует 3 регистра под свои нужды, доступны от g0 до g12;
24 системных регистра от s0 до s23 (можно использовать синонимы):
- s1 (audio) - номер звукового канало (от 0 до 7)
- s2 (subtitle) - номер дорожки субтитров (от 0 до 31,
добавление 64 к номеру дорожки делает субтитры обязательными)
- s3 (angle) - выбор камеры
- s8 (button) - номер подсвеченной кнопки, умноженный на 1024
- можно задать выполнение списка команд при установке диска (fpc - First Program Chain),
перед (pre) и после (post) pgc
- pgc может содержать описание экранных кнопок и выполняемых по их нажатию команд
- pgc именуются, имя VMGM меню - title, имена VTS меню - root, subtitle, audio, angle, ptt
- меню, кнопки и субтитры должны разделять общую палитру цветов (16 штук)
Упрощённая (полная схема в /usr/share/dvdauthor/dvdauthor.xsd)
структура XML-файла (параметры видео и звука могут извлекаться
из исходных файлов автоматически, кроме языка):
<dvdauthor [dest="каталог-с-результатом"]>
<vmgm>
[<fpc>команда;[...]</fpc>]
<menus [lang="код-языка"] >
<video [format="ntsc|pal"] [aspect="4:3|16:9"]
[resolution="720xfull|720x576|720x480|704xfull|704x576|704x480"] [caption="field1|field2"]
[widescreen="nopanscan|noletterbox|crop"] />
<audio [format="mp2|ac3|dts|pcm"] [channels="число-каналов"]
[quant="16bps|20bps|24bps|drc"] [dolby="surround"]
[samplerate="48khz|96khz"] [lang="код-языка"] />
[<audio ... />]
[<subpicture lang="код-языка" />]
<pgc [entry="имя-меню"] [palette="имя-файла.yuv|имя-файла.rgb"] [pause="секунд|inf"]>
<pre>команда;[...]</pre>
<vob file="имя-файла.mpg" [chapters="список-временных-маркеров-частей"] [pause="секунд|inf"] />
[<vob ... />]
<button [name="имя-кнопки"]> команда;[...] </button>
[<button ... />]
<post>команда;[...]</post>
</pgc>
[<pgc ... />]
</menus>
</vmgm>
<titleset>
<menus ...>
<titles>
[<video ... />]
[<audio ... />]
<pgc .../>
[<pgc ... />]
</titles>
</titleset>
[<titleset ... />]
</dvdauthor>
Дополнительные утилиты: mpeg2desc (демультиплексирование видео и звука),
spumux (генерация и мультиплексирование subtitles, формат задаётся XML-файлом, картинки в PNG или BMP,
с её помощью создаются меню с нажимаемыми кнопками и картинками,
а также графические субтитры из .sub, .srt, .ssa, .smi, .rt, .txt, .aqt, .jss, .js, .ass),
spuunmux (выдирание имеющихся).
Методическое пособие
по преобразованию произвольного видео файла в DVD-Video
с использованием mplayer и k3b
(для хранения промежуточного файла можно использоавть fifo):
- преобразование в MPEG-2 PS со звуком в формате AC3 (hwac3), поток (vbitrate) по возможности,
соотношение сторон по потребности (4/3), разрешение (720:480) и частоту кадров (30000/1001) в зависимости
от телевизионного стандарта:
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,harddup \
-srate 48000 -af lavcresample=48000 -lavcopts \
acodec=ac3:abitrate=192:vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:aspect=16/9 \
-ofps 25 -o результат.mpg исходное-видео
- создание описания будущего DVD-Video (простейший пример для одного фильма без меню и частей)
в файле результат.xml
<dvdauthor>
<vmgm />
<titleset>
<titles>
<pgc>
<vob file="результат.mpg" />
</pgc>
</titles>
</titleset>
</dvdauthor>
- запуск dvdauthor
dvdauthor -o dvd -x результат.xml
- запись получившегося каталога dvd с помощью k3b
или growisofs
growisofs -dvd-compat -Z /dev/dvdrw -dvd-video ./dvd/
Библиотека libfame
(fast assembler mpeg encoder)
представляет собой ускоренный кодировщик видео MPEG-1 и MPEG-4.
Разработки прекратились в 2004 году.
В F10 установил пакеты libfame и libfame-devel версии 0.9.1-13.fc10
из репозитария rpmfusion-free.
В FC6 установил пакеты libfame и libfame-devel версии 0.9.1-12.fc6
из репозитария freshrpms.
В FC3 установил пакеты libfame и libfame-devel версии 0.9.1
из репозитария livna.
Установка libfame 0.9.0 в RH8.0:
- получить и развернуть исходные тексты
- ./configure --enable-sse
- make
- make install
- /usr/local/man/man3/fame*
- /usr/local/lib/libfame*
- /usr/local/include/fame*
- /usr/local/bin/libfame-config
- /usr/local/share/aclocal/libfame.m4
- ldconfig
libm4isomedia - часть проекта gpac, предоставляет возможность для работы с файловым
форматом MPEG-4 (.mp4, .mov, QT, ISO Media).
В F10 и FC6 не устанавливал.
Установка libm4isomedia 0.2.2 в FC3:
- поправить в configure определение version
- ./configure
- make
- поправить Makefile (install: libm4systems_static.a на libm4isomedia_static.a; uninstall:)
- make install
- /usr/local/include/gpac/
- /usr/local/lib/ (libm4isomedia_static.a, libm4isomedia.so, libm4isomedia-0.2.2.so)
Для x264 библиотеки libm4isomedia оказалось недостаточно.
gpac -
большой пакет для работы с MPEG-4 непонятного назначения (авторы называют это "multimedia framework").
Обеспечивает создание MPEG-4 программ, трансляцию их по сети (RTP/RTSP) и просмотр.
Работает также с avi, mov, mpg, MPEG-4 Systems, VRML/X3D, SVG, javascript.
Конфигурационный файл - ~/.gpacrc.
Ставил его только из-за библиотек и утилит для работы x264 с
файловым форматом MPEG-4 (.mp4, .mov, QT, ISO Media), текущая версия x264 умеет работать с
форматом Matroska, так что потребность отпала.
В комплекте исходных текстов идут модифицированные версии библиотек работы с видео и звуком (ffmpeg и т.п.),
но их я не устанавливал. Базовая платформа разработчиков - MS Windows
(проблемы с прописными и строчными буквами).
Для более полной сборки требуются js, amr-nb, mad, faad, xvid, ffmpeg (для которого требуется x264,
для которого требуется gpac).
MP4Box - утилита для работы с файловым форматом MPEG-4 (MP4, 3GP, MOV),
а также AVI, MPEG-PS, OGG, MPEG Audio, ADTS-AAC, MPEG-4 Visual, H263 Video, AVC/H264 Video,
VRML, X3D-XML, X3D-VRML.
MP4Client - проигрыватель командной строки с использованием SDL;
при первом запуске создаёт .gpacrc; на файл, закодированный x264 сообщает,
что нет такого кодека. Не удалось найти ни одного файла MOV, который он смог бы показать
(причём он отнекивался весьма разнообразно) и запись только одной коммерческой трансляции.
MPEG4Gen, SVGGen, X3DGen.
В F10 установил пакеты gpac, gpac-libs, gpac-devel и gpac-devel-static
версии 0.4.5-0.5.20080217cvs.fc10 из rpmfusion-free.
Установка gpac-CVS20070218 (gpac-CVS20071217) в FC6:
- cvs -z3 -d:pserver:anonymous@gpac.cvs.sourceforge.net:/cvsroot/gpac co -P gpac
- chmod u+x configure
- ./configure --disable-ipv6 [--use-faad=local (для faad2-2.5, что-то поломали в интерфейсе)]
- для --enable-amr-nb, --enable-amr-nb-fixed, --enable-amr-wb и --enable-amr
необходимо тащить исходники с 3gpp
- для --use-ffmpeg=local необходимо тащить дополнительный каталог
- make help
- make
- make install (Root cannot install local mozilla plugins!)
- /usr/local/bin
- MP4Box
- MP4Client
- Osmo4 (?)
- /usr/local/lib/gpac/gm_*
- /usr/local/lib/ (libgpac-0.4.3-DEV.so, libgpac.so)
- /usr/local/man/man1/ (mp4box.1, mp4client.1, gpac.1), заметьте MP4Box, но mp4box.1!
- /usr/local/share/gpac/gpac.mp4
- убедиться, что выполнился ldconfig
- make install-lib
- /usr/local/include/gpac/
- /usr/local/include/gpac/internal/
- /usr/local/include/gpac/modules/
- /usr/local/lib/libgpac_static.a
- MP4Client: error while loading shared libraries: (SELinux)
/usr/local/lib/libgpac.so: cannot restore segment prot after reloc: Permission denied
- chcon -t texrel_shlib_t /usr/local/lib/*.so
- chcon -t texrel_shlib_t /usr/local/lib/gpac/*.so
Установка gpac-0.4.2-rc2 в FC3:
- chmod u+x configure
- ./configure --prefix=/usr/local --disable-ipv6
- для --enable-amr-nb-fixed и --enable-amr необходимо тащить исходники с 3gpp
- для --use-ffmpeg=local необходимо тащить дополнительный каталог
- make help
- make
- make install
- /usr/local/bin
- MP4Box (утилита для работы с файловым форматом MPEG-4)
- MP4Client (проигрыватель командной строки с использованием SDL;
при первом запуске создаёт .gpacrc; на файл, закодированный x264 сообщает,
что нет такого кодека)
- /usr/local/lib/gpac/gm_*
- /usr/local/lib/ (libgpac-0.4.2.so, libgpac.so)
- /usr/local/man/man1/ (mp4box.1, mp4client.1, gpac.1), заметьте MP4Box, но mp4box.1!
- убедиться, что выполнился ldconfig
- make install-lib
- /usr/local/include/gpac/
- /usr/local/include/gpac/internal/
- /usr/local/include/gpac/modules/
- /usr/local/lib/libgpac_static.a
Установка gpac из CVS (20060613) в FC3:
- yum install libjs
- поменялись правила доступа к анонимному CVS серверу на sourceforge.net:
cvs -z3 -d:pserver:anonymous@gpac.cvs.sourceforge.net:/cvsroot/gpac co -P gpac
- chmod u+x configure
- ./configure --prefix=/usr/local --disable-ipv6
- для --enable-amr-nb-fixed и --enable-amr необходимо тащить исходники с 3gpp
- для --use-ffmpeg=local необходимо тащить дополнительный каталог
- make help
- make
- make install
- /usr/local/bin
- MP4Box (утилита для работы с файловым форматом MPEG-4)
- MP4Client (проигрыватель командной строки с использованием SDL;
при первом запуске создаёт .gpacrc; на файл, закодированный x264 сообщает,
что нет такого кодека)
- /usr/local/lib/gpac/gm_*
- /usr/local/lib/ (libgpac-0.4.1-DEV.so, libgpac.so)
- /usr/local/man/man1/ (mp4box.1, mp4client.1, gpac.1), заметьте MP4Box, но mp4box.1!
- убедиться, что выполнился ldconfig
- make install-lib
- /usr/local/include/gpac/
- /usr/local/include/gpac/internal/
- /usr/local/include/gpac/modules/
- /usr/local/lib/libgpac_static.a
Установка gpac из CVS (20060524) в FC5 (что-то долго нет релиза):
- поменялись правила доступа к анонимному CVS серверу на sourceforge.net:
cvs -z3 -d:pserver:anonymous@gpac.cvs.sourceforge.net:/cvsroot/gpac co -P gpac
- chmod u+x configure
- ./configure --prefix=/usr/local --enable-gprof --disable-ipv6
- для --enable-amr-nb-fixed и --enable-amr необходимо тащить исходники с 3gpp
- для --use-faad=local необходимо тащить дополнительный каталог
- для --use-mad=local необходимо тащить дополнительный каталог
- для --use-xvid=local необходимо тащить дополнительный каталог
- для --use-ffmpeg=local необходимо тащить дополнительный каталог
- --use-js=local вызывает проблемы сборки в каталоге laser
- make help
- заменить vapth на vpath в applications/generators/SVG/Makefile
- make
- make install
- /usr/local/bin
- MP4Box (утилита для работы с файловым форматом MPEG-4)
- MP4Client (проигрыватель командной строки с использованием SDL;
при первом запуске создаёт .gpacrc; на файл, закодированный x264 сообщает,
что нет такого кодека)
- /usr/local/lib/gpac/gm_*
- /usr/local/lib/ (libgpac-0.4.1-DEV.so, libgpac.so)
- /usr/local/man/man1/ (mp4box.1, mp4client.1, gpac.1), заметьте MP4Box, но mp4box.1!
- убедиться, что выполнился ldconfig
- make install-lib
- /usr/local/include/gpac/
- /usr/local/include/gpac/internal/
- /usr/local/include/gpac/modules/
- /usr/local/lib/libgpac_static.a
Установка gpac 0.4.0-rc2 в FC5 (что-то долго нет релиза):
- chmod u+x configure
- ./configure --prefix=/usr/local
- make
- закоментировать gl в modules/x11_out/x11_out.c
- make
- make install
- /usr/local/bin
- MP4Box (утилита для работы с файловым форматом MPEG-4)
- MP42AVI (преобразование векторной графики MPEG-4 BIFS в несжатый AVI)
- MP4Client (проигрыватель командной строки с использованием SDL;
при первом запуске создаёт .gpacrc; на файл, закодированный x264 сообщает,
что нет такого кодека)
- /usr/local/lib/gpac/
- /usr/local/lib/ (libm4systems-0.3.0.so, libm4systems.so)
- /usr/local/man/man1/ (mp4box.1, mp42avi.1, mp4client.1, gpac.1)
- make install-lib
- /usr/local/include/gpac/
- /usr/local/lib/libm4systems_static.a
Установка gpac 0.3.0 в FC3:
- chmod u+x configure
- ./configure --prefix=/usr/local
- make
- make install
- /usr/local/bin
- MP4Box (утилита для работы с файловым форматом MPEG-4)
- MP42AVI (преобразование векторной графики MPEG-4 BIFS в несжатый AVI)
- MP4Client (проигрыватель командной строки с использованием SDL (версия с Unicode
не работает), .gpacrc)
- /usr/local/lib/gpac/
- /usr/local/lib/ (libm4systems-0.3.0.so, libm4systems.so)
- /usr/local/man/man1/ (mp4box.1, mp42avi.1, mp4client.1, gpac.1)
- make install-lib
- /usr/local/include/gpac/
- /usr/local/lib/libm4systems_static.a
x264
(неофициальный сайт,
список изменений) -
кодировщик H.264 (MPEG-4 AVC) из форматов raw YUV 4:2:0
(требуется указывать размер кадра - 640x480 - после имени файла)
или "старого" YUV4MPEG 4:2:0 (суффикс имени файла д.б. ".y4m"),
выводит в форматах (определяется суффиксом имени файла, ключ "-o"):
MKV (.mkv), MP4 (.mp4, требуется gpac, для версий 299 и выше требуется gpac-0.4) и 264 (.264).
Документация отсутствует. Полный список ключей выдаётся по "--longhelp":
- управление группами кадров (GOP, B-кадры сильно замедляют обработку)
- --min-keyint число (25, -i, минимальный размер GOP)
- --keyint число (250, -I, максимальный размер GOP,
увеличение GOP не ведёт к деградации изображения в отличие от MPEG1/2/4)
- --scenecut число (40, интенсивность определения границы сцен для вставки I-кадров, от 0 до 100)
- --pre-scenecut (использовать упрощённый алгоритм определения границ сцен,
необходим для многопроцессорной обработки)
- --bframes число (0, -b, число B-кадров между I- и P-кадрами)
- --b-bias число (0, интенсивность адаптивного алгоритма вставки B-кадров)
- --no-b-adapt (отключить адаптивный алгоритм принятия решения о количестве B-кадров)
- управление балансом между степенью сжатия и качеством изображения
- --qp число (26, -q, сжатие с постоянным качеством QP,
0 - без потерь, 18 - потери не заметны, качество P- и B-кадров определяется --ipratio и --pbratio)
- --crf плавающее (сжатие с переменным потоком - VBR; в чём отличие от -q?)
- --bitrate число (-B, сжатие с постоянным потоком - CBR, kbps)
- --vbv-bufsize число (0, размер буфера, kbit)
- --vbv-init плавающее (0.9, начальное заполнение буфера)
- --vbv-maxrate число (0, максимальная величина потока, kbps)
- --qpmin число (10, минимально допустимое значение QP)
- --qpmax число (51, минимально допустимое значение QP)
- --qpstep число (4, максимальный скачок QP между кадрами)
- --ratetol плавающее (1.0, допустимое отклонение от среднего потока)
- --ipratio плавающее (1.4, ухудшение QP P-кадров относительно I-кадров)
- --pbratio плавающее (1.3, ухудшение QP B-кадров относительно P-кадров)
- --chroma-qp-offset число (0, ухудшение QP цветовых плоскостей относительно яркости)
- --qcomp плавающее (0.60, управление кривой изменеия QP, 0.0 - CBR, 1.0 - CQP)
- --cplxblur плавающее (20.0, уменьшение флуктуации QP до управления кривой)
- --qblur плавающее (0.5, уменьшение флуктуации QP после управления кривой)
- --zones, --qpfile (возможность задать качество для интервалов кадров и отдельных кадров)
-
- управление балансом между скоростью обработки и степенью сжатия
- --b-pyramid (использовать B-кадры в качестве опорных)
- --no-cabac (не использовать самый эффективный - дополнительные 10%,
но медленный алгоритм сжатия коэффициентов без потерь CABAC)
- --ref число (1, -r, количество используемых опорных кадров)
- --no-deblock (отключить фильтр размытия границ блоков, не рекомендуется)
- --deblock alpha:beta (0:0, праметры фильтра размытия)
- --direct-8x8 чмсло (1, размер предсказания направления, 0 - 4x4, 1 - 8x8, -1 - минимально возможный0
- --weightb (-w, взвешенное предсказание для B-кадров)
- --me строка ("hex", метод перебора при определении вектора движения:
dia - по углам с радиусом 1 (самый быстрый), hex - по шестиугольнику с радиусом 2,
umh - поиск по шестиугольникам разных размеров, esa - полный перебор,
tesa - ещё более полный перебор (?)
- --merange число (16, радиус поиска вектора движения)
- --mvrange число (-1, максимальная длина вектора движения, -1 - автоматически)
- --mvrange-thread число (-1, минимальный буфер между потоками)
- --subme число (5, -m, метод субпиксельного уточнения вектора движения, от 1 до 7)
- --b-rdo (модификация метода субпиксельного уточнения вектора движения для B-кадров при -m=6 и =7)
- --mixed-refs (выбирать опорные кадры поблочно, требуемое для хранения этой
информации место может увеличить размер потока вместо ожидавшегося уменьшения)
- --no-chroma-me (не учитывать цветовые плоскости при определении вектора движения)
- --bime (для B-кадров одновременно оптимизировать вектора движения в обе стороны)
- --8x8dct (-8, адаптивный выбор размера блока)
- --trellis (0, -t, уплотнение хвостов (Trellis RD quantization), 0 - не использовать,
1 - только при конечном кодировании макроблока, 2 - на всех этапах)
- --no-fast-pskip (отключить быстрое обнаружение SKIP для P-кадров)
- --no-dct-decimate (?)
-
- контроль потока при многопроходной обработке (CBR, ABR)
- --pass номер-прохода (-p, 1 - создание файла статистики, 2 - последний проход,
3 - промежуточный проход)
- --stats имя-файла-статистики ("x264_2pass.log")
- баланс между возможностями декодера и степенью сжатия:
- --interlaced
- --aq-mode режим (2, перераспределение битов между кадрами:
0 - запретить, 1 - нежелательно, 2 - желательно)
- --aq-strength плавающее (1.0, уменьшение блочности и размытия на плоских и текстурированных областях)
- --partitions строка ("p8x8,b8x8,i8x8,i4x4", -A, допустимые типы блоков:
p8x8, p4x4, b8x8, i8x8, i4x4, none, all)
- адаптация к особенностям видеоматериала:
- --direct строка ("spatial", режим предсказания направления макроблоков: none, spatial, temporal, auto)
- --cqm строка ("flat", выбор матрицы квантования - jvt, flat)
- --cqmfile, --cqm4*, --cqm8* (явное задание матрицы квантования)
- --nr число (0, очистка шума, не рекомендуется)
- видеохарактеристики выходного файла (Video Usability Info, Annex E)
- --overscan строка (undef, show, crop)
- --videoformat строка (undef, component, pal, ntsc, secam, mac)
- --fullrange строка (off, on: значения пикселей от 0 до 255 вместо 16-243?)
- --colorprim строка (undef, bt709, bt470m, bt470bg, smpte170m, smpte240m, film)
- --transfer строка (undef, bt709, bt470m, bt470bg, linear, log100, log316, smpte170m, smpte240m)
- --colormatrix строка (undef, bt709, fcc, bt470bg, smpte170m, smpte240m, GBR, YCgCo)
- --chromaloc число (0)
- --sar ширина:высота (форма пикселя)
- --fps плавающее/рациональное
- --seek число (0, номер первого кодируемого кадра)
- --frames число (число кодируемых кадров)
- --level уровень-производительности-декодера
- отладочная печать
- --verbose (-v, статистика о каждом кадре)
- --progress (индикатор доли завершения)
- --quiet
- --no-psnr (не вычислять уровень потерь по методике PSNR, сильно ускоряет сжатие)
- --no-ssim (не вычислять уровень потерь по методике SSIM)
- --threads число (количество параллельных потоков)
- --non-deterministic (увеличить качество при использовании параллельных вычислений за счёт
потери повторяемости результата)
- --no-asm (отключить ассемблерную оптимизацию)
В F10 установил пакеты x264, x264-libs, x264-devel, x264-gui и x264-gui-devel
версии 0.0.0-0.18.20080905.fc10 (core 61) из репозитария rpmfusion-free.
И дополнительно свежую версию 0.66.0-r1114-20090222 (core 66) в /usr/local (изменился смысл параметра subme;
убраны параметры b-rdo и bime; профиль High 4:4:4 lossless заменён на High 4:4:4 Predictive
в соответствии с изменением стандарта - уменьшение размера на 15%, но mplayer этого не понимает;
психовизуальная оптимизация (--psy-rd);
размер файла увеличился при "--subme 6" на 4%, скорость уменьшилась!)
- ./configure # MP4 и pthread по умолчанию, разделяемые библиотеки от пакета, графика не нужна
- make
- make install
- /usr/local/include/x264.h
- /usr/local/lib/libx264.a
- /usr/local/bin/x264
- /usr/local/lib/pkgconfig/x264.pc
В FC6 установил пакеты x264, x264-devel, x264-gui и x264-gui-devel
версии 0-0.8.20061028.lvn6 из репозитария livna (без gpac, а стало быть вывода
в формате MP4). Репозитарий freshrpms имел
более свежую версию 0.0.0-0.3.20061214.fc6, но мне не захотелось бороться с зависимостями
пакетов (ffmpeg) из разных репозитариев.
Установка дополнительно x264 svn-622 (для svn-714 требуется yasm;
для git-1038 требуется yasm 0.6.1) в FC6 в /usr/local (требуется,
чтобы выводить в .mp4, но и без пакета нельзя, т.к. включён в цепочку зависимостей):
- ./configure [--enable-mp4-output] [--enable-gtk] --enable-pthread --enable-visualize --enable-shared
- make
- make install
- /usr/local/include/ ([x264_gtk.h, x264_gtk_enum,] x264.h)
- /usr/local/lib/ ([libx264gtk.a, libx264gtk.so,] libx264.a, libx264.so.65, libx264.so)
- /usr/local/bin/ ([x264_gtk_encode,] x264
- /usr/local/lib/pkgconfig/ ([x264gtk.pc,] x264.pc
- [/usr/local/share/x264/x264.png]
Установка x264 svn-598 в FC3 (--enable-gtk даёт ошибки):
- ./configure --enable-mp4-output --enable-visualize --enable-pthread
- make
- make install
- /usr/local/include/x264.h
- /usr/local/lib/libx264.a
- /usr/local/bin/x264
- /usr/local/lib/pkgconfig/x264.pc
Установка x264 svn-532 в FC3:
- ./configure --enable-mp4-output --enable-visualize [--enable-pthread]
- make
- make install
- /usr/local/include/x264.h
- /usr/local/lib/libx264.a
- /usr/local/bin/x264
- /usr/local/lib/pkgconfig/x264.pc
Установка x264 svn-512 в FC5:
- make distclean
- ./configure --enable-mp4-output --enable-visualize [--enable-pthread]
- make
- отредактировать muxer.c (лишний параметр у gf_isom_open)
- make
- make install
- /usr/local/include/x264.h
- /usr/local/lib/libx264.a
- /usr/local/bin/x264
Установка x264 svn-270M в FC3:
- rm .depend
- ./configure --enable-mp4-output --enable-visualize
- make
- make install
- /usr/local/include/x264.h
- /usr/local/lib/libx264.a
- /usr/local/bin/x264
Кодирование в MP4 с понравившимися мне параметрами с постояннм качеством
(--qp 18 эквивалентен -q 2 в mpeg2enc;
можно ещё указать --8x8dct, что даёт 2.6% сжатия, но не все программы смогут прочитать результат;
недоделанный файл MP4 смотреть нельзя;
эмулятор терминала потребляет довольно много времени на вывод статистики для каждого кадра;
использование B-кадров не даёт улучшения, если их качество уровнять с P-кадрами;
для некоторых отрывков (кодированный с хорошим качеством белый шум) не хватает P4 2.4 GHz):
x264 -v --no-psnr --scenecut -1 --direct auto --qp 18 --me umh --subme 7 --trellis 2 -o имя.mkv fifo.y4m
В состав пакета mpeg2dec 0.3.1
входила полезная утилита mpeg2toc, которая строила оглавление DVD.
В текущей версии она пропала.
В F10 установил пакет mpeg2dec версии 0.5.1-3.fc10
из репозитария rpmfusion-free (где mpeg2dec-devel?).
В состав пакета входит программа "порчи" файлов для тестирования возможностей восстановления.
В FC6 установил пакеты mpeg2dec и mpeg2dec-devel версии 0.4.1-2.lvn6
из репозитария livna.
В FC3 свежую версию устанавливать не стал, а mpeg2toc взял из старой
(исходников которой не осталось).
FFmpeg -
видеокодек MPEG1/MPEG4/H263/RV и звука AC3/MPEG (и многое другое), оптимизированный по скорости.
Также включает библиотеки работы с контейнерами.
В дополнение к библиотекам включает
- проигрыватель ffplay (с использованием SDL и интерактивным управлением), ключи:
- -formats (показать список доступных форматов)
- -f имя-формата
- -x ширина-окна
- -y высота-окна
- -ss секунд-пропустить
- -bytes байт-пропустить
- -sync audio|video|ext
- -threads параллельных-потоков
- -stats
- преобразователь видео и аудио ffmpeg (умеет захватывать с oss, video4linux2, x11grab)
- потоковый сервер ffserver, принимающий видео/аудио поток[и] от ffmpeg и вещающий
в протоколах RTP, RTSP или HTTP (ffserver.conf)
В F10 установил пакеты ffmpeg, ffmpeg-devel и ffmpeg-libs
версии 0.4.9-0.54.20080908.fc10 из репозитария rpmfusion-free.
В FC6 установил пакеты ffmpeg, ffmpeg-devel и ffmpeg-libs
версии 0.4.9-0.34.20070204.lvn6 из репозитария livna (требует x264),
а заодно gstreamer-ffmpeg версии 0.10.2-1.lvn6, gstreamer-plugins-ugly 0.10.5-1.lvn6
и gstreamer-plugins-ugly-devel 0.10.5-1.lvn6 из репозитария livna (a52dec, asf, dvdlpcmdec,
dvdread, dvdsub, iec958, lame, mad, mpeg2dec, mpegstream, rmdemux).
Затем gstreamer-plugins-bad (bz2, cdxaparse, dfbvideosink, dtsdec, faac, faad, freeze, glimagesink,
gsm, mms, modplug, musepack, neonhttpsrc, pitch, qtdemux, sdlvideosink, speed, swfdec, trm, tta, video4linux2,
xingheader, xvid.so), gstreamer-plugins-bad-devel и gstreamer-plugins-farsight (ice, jrtp, rtpdemux, rtpjitterbuffer)
версии 0.10.3-3.fc6 из репозитария freshrpms (потянул libmms из livna - обработка mms://).
В FC3 установил пакеты ffmpeg-0.4.9-9_cvs20050517.rhfc3.at
и ffmpeg-devel-0.4.9-9_cvs20050517.rhfc3.at из репозитария at. Предварительно пришлось поставить
пакеты imlib2-1.2.0-5 (библиотека работы с изображениями) и libdc1394-1.0.0
из репозитария us (libdc1394-2.0.0-0.1.pre5.1 из dag). Версия 0:0.4.9-14_cvs20060301.rhfc3.at потянула
(разбили на куски, причём разных версий?) пакеты
libavcodec51 (0:0.4.9-14_cvs20060301.rhfc3.at), libavutil49 (0:0.4.9-14_cvs20060301.rhfc3.at),
libavformat50 (0:0.4.9-14_cvs20060301.rhfc3.at).
Проблема с зависимостями в FC3: ffmpeg хочет transcode, а тот нерелизный mjpegtools.
libquicktime -
библиотека для чтения и записи файлов в формате quicktime, включая кодеки.
Включает проигрыватель lqtplay (использует Xvideo/OpenGL и OSS/Alsa, рассказывает всё о формате дорожек)
и утилиты libquicktime_config (настройка приоритетов и параметров кодеков),
qtinfo (информация о формате дорожек), lqt_transcode (преобразование форматов видео и звука),
qt2text (извлечение текста), qtrechunk (сборка видео из кадров), qtdechunk (разборка видео на кадры),
qtdump, qtstreamize, qtyuv4toyuv (конвертация в файл формата YUV 4:2:0).
В F10 установил пакеты libquicktime, libquicktime-devel и
libquicktime-utils версии 1.0.3-4.fc10 из репозитария rpmfusion-free.
В FC6 установил пакеты libquicktime, libquicktime-devel и
libquicktime-utils версии 0.9.10-3.lvn6 из репозитария livna.
В FC3 установил пакеты libquicktime0, libquicktime1394_0,
libquicktime и libquicktime-devel версии 0.9.8 из репозитария at
(libquicktime-0.9.10-1.fc3 и libquicktime-devel-0.9.10 из репозитария dag,
потянул faac-1.24-1.1.fc3.rf.i386).
Утилита dvgrab
видеозахвата DV или HDV (MPEG-2 TS) с источника,
подключенного по FireWire (IEEE-1394) или UVC (USB Video Class, используется модуль uvcvideo из V4L2),
и удалённого управления видеокамерой. Позволяет разбивать файл по сценам или размеру
(в кадрах, байтах или секундах). Формат контейнера и кодек: avi (dv1, dv2), dv (raw), mov, jpg/jpeg,
m2t (mpeg2, hdv).
В F10 установил пакет dvgrab версии 3.2-1.fc10.
В FC6 установил пакет dvgrab версии 2.1-2.fc6.
libdv
предоставляет собой библиотеку для кодирования и декодирования видео в формате DV
(видеокамеры с интерфейсом IEEE 1394, Firewire, iLink; стандарты IEC 61834, SMPTE 314M),
включая примеры использования playdv (OSS/файл и Xv/SDL/gtk/кадры),
encodedv (создание видео из отдельных кадров PPM/PGM и WAV),
dvconnect (приём видео с OHCI адаптера или передача (--send), используется video1394),
dubdv (вставить звук (WAV или OSS DSP) в видеопоток).
В F10 установил пакеты libdv, libdv-tools и libdv-devel версии 1.0.0-5.fc10.
В FC6 установил пакеты libdv, libdv-tools и libdv-devel версии 1.0.0-1.fc6.
В FC3 установил пакеты libdv4, libdv-tools и libdv-devel версии
0.103 из репозитария at. Предварительно пришлось обновить dvgrab с версии 1.6-1 до 1.6-1.1
из репозитария dag.
Установка libdv 0.99 в RH8.0:
Библиотека zvbi
представляет средства для извлечения VBI (vertical blanking interval) кодов
(цифровой сигнал, закодированный в неиспользуемых промежутках телевизионного сигнала)
и декодирования телетекста и CC (closed caption). Использует V4L или V4L2.
Используется в AleVT, xawtv, Zapping TV. Включает прокси для разделения VBI данных между несколькими
приложениями в виде сервиса (демона) zvbid и оболочки zvbi-chains
(подменяет (LD_PRELOAD) для приложения вызовы open и read с использованием прокси вместо реальных устройств).
Утилита zvbi-ntsc-cc декодирует CC данные на стандартный вывод.
В F10 установил пакеты zvbi, zvbi-devel и zvbi-fonts версии 0.2.30-1.fc9.
В FC6 установил пакеты zvbi, zvbi-devel и zvbi-fonts версии 0.2.22-2.fc6 (0.2.24-1.fc6)
из репозитария extras.
В FC3 установил пакеты zvbi и zvbi-devel версии 0.2.21
из репозитария dag.
Библиотека aalib
(ASCII art) позволяет выводить изображения на монохромный а/ц терминал (xterm, ncurses, slang, x11, OpenGL).
Включает тестовые программы aafire, aainfo, aasavefont и aatest.
В F10 установил пакеты aalib-libs, aalib и aalib-devel версии 1.4.0-0.16.rc5.fc10.
В FC6 установил пакеты aalib и aalib-devel версии 1.4.0-0.11.rc5.fc6
из репозитария extras.
В FC3 установил пакеты aalib и aalib-devel версии 1.4.0 из репозитария dag.
Библиотека libcaca
(Colour AsCii Art) позволяет выводить изображения на цветной а/ц терминал.
Включает тестовые программы и утилиты: cacaview (просмотр графических файлов с интерактивным управлением -
масштабирование и пр.), cacafire, cacademo, cacaplay (анимация в собственном формате),
cacaserver (читает анимированный файл и изображает telnte сервер на порту 51914),
img2txt (преобразование изображения в а/ц формат: ansi, utf8, html (CSS), irc, bbfr (BBCode), ps, svg).
В F10 установил пакеты libcaca, libcaca-devel и caca-utils версии 0.99-0.5.beta16.fc10.
В FC6 установил пакеты libcaca-devel и caca-utils версии 0.9-11.fc6 из репозитария extras.
openjpeg - кодек JPEG 2000,
включая анимацию MJPEG 2000, Cinema 2K, Cinema 4K и сжатие без потерь (очень хорошее).
В дополнение к библиотекам содержит утилиты (все имеют ключ "-h")
extract_j2k_from_mj2 (извлечение кадров JPEG 2000 из потока MJPEG 2000),
frames_to_mj2 (преобразование последовательности кадров .yuv в MJPEG 2000),
image_to_j2k (преобразование изображения (.pnm, .pgm, .ppm, .bmp, .tif, .raw, .tga),
задаваемого ключом "-i", в изображение в формате JPEG 2000, задаваемое клюом "-o";
множество параметров),
j2k_to_image (преобразование из JPEG 2000 (J2K, JP2, JPT) в другой формат
(PGM, PPM, PNM, PGX, BMP, TIF, RAW and TGA)), mj2_to_frames, wrap_j2k_in_mj2.
В F10 установил пакеты openjpeg, openjpeg-libs и openjpeg-devel версии 1.3-2.fc9.
Пакет avifile предоставляет библиотеку для чтения
и разборки AVI (ASF, WMV) файлов, а также некоторый набор использующих ее утилит.
В качестве кодеков в некоторых случаях используются исполняемые DLL файлы,
предназначенные для Win32 (/usr/lib/win32).
Я использую только библиотеки (для сборки других пакетов) и avitype.
Установка avifile из CVS (CVS-0.7.48-090306-01:44-4.3.2) в F10
- cvs -d:pserver:anonymous@avifile.cvs.sourceforge.net:/cvsroot/avifile login
- cvs -z3 -d:pserver:anonymous@avifile.cvs.sourceforge.net:/cvsroot/avifile co avifile
- make distclean
- ./autogen.sh
- ./configure --enable-static --enable-win32 --enable-divxbin --enable-ffmpeg-gray --enable-ffmpeg-openjpeg --enable-ffmpeg-swscaler --enable-vidix --enable-release --with-freetype2 --without-lame
- win32 no - нехорошо (setarch i686 возвращает win32, но отключает всё остальное)
- make
- ошибки openjpeg
- ./configure --enable-static --enable-win32 --enable-divxbin --enable-ffmpeg-gray --enable-ffmpeg-swscaler --enable-vidix --enable-release --with-freetype2 --without-lame
- make
- ошибки компиляции samples/qtvidcap/kv4lsetup.cpp
- ./configure --enable-static --enable-win32 --enable-divxbin --enable-ffmpeg-gray --enable-ffmpeg-swscaler --enable-vidix --enable-release --with-freetype2 --without-lame --without-qt --disable-samples
- make
- не помогло - ну, не очень-то и хотелось: зачем нужен aviplay без кодеков от win32?
взял 32-битную версию, оставшуюся от FC6
Установка avifile из CVS в FC6 не удалась
- cvs -d:pserver:anonymous@avifile.cvs.sourceforge.net:/cvsroot/avifile login
- cvs -z3 -d:pserver:anonymous@avifile.cvs.sourceforge.net:/cvsroot/avifile co avifile
- ./autogen.sh
- ./configure --enable-x86opt --enable-static --enable-release --with-freetype2 --without-lame
- make
- видимо, создаётся неправильный configure
Установка avifile 0.7.45 в FC6:
- создать и заполнить /usr/lib/win32 (у меня сложилась исторически и содержит файлы .dll, .acm, .qtx,
.ax, .drv, .vmp, .xa и даже разделяемых библиотек .so; откуда что взялось и кому нужно
понять невозможно, поэтому таскаю с собой все, что есть; для начала можно взять
с сайта пакета avifile;
затем дополнить при установке пакетов xine и mplayer)
- получить и развернуть исходные тексты
- faad2-2.5 не подходит! [отключить have_faad в configure]
- CC=gcc34 CXX=g++34 ./configure --enable-x86opt --enable-static --with-freetype2 --without-lame
- make
- make install
- /usr/local/bin/:
- avifile-config
- aviplay (показать видео, может использоваться XVideo, OpenGL, SDL)
- avibench (измерение производительности процессора и видеосистемы на примере)
- avicat (вырезание кусков и слияние AVI файлов)
- avitype (получение информации о видео)
- avimake (изготовление AVI файла (DIVX) из последовательности JPEG)
- kv4lsetup
- avirec
- avicap
- avirecompress
- /usr/local/lib/pkgconfig/avifile.pc
- /usr/local/share/avifile-0.7/doc/ (README, ChangeLog, EXCEPTIONS, KNOWN_BUGS, TODO,
VIDEO-PERFORMANCE, WARNINGS, README-DEVEL, avicap/, )
- /usr/local/lib/avifile0.7/ (подгружаемые библиотеки с кодеками: ac3pass, audiodec, ffmpeg,
mad_audiodec, mp3lame_audioenc, mp3lamebin_audioenc, mpeg_audiodec, osmjpeg, vidix, vorbis_audio,
win32, xvid4)
- /usr/local/lib/ (libaviplayavutil-0.7.so.0.0.45, libaviplayavutil.a,
libaviplayavformat-0.7.so.0.0.45, libaviplayavformat.a,
libaviplayavcodec-0.7.so.0.0.45, libaviplayavcodec.a,
libaviplaydha-0.7.so.0.0.45, libaviplaydha.a, libaviplayvidix-0.7.so.0.0.45, libaviplayvidix.a,
libaviplay-0.7.so.0.0.45, libaviplay.a, libqavm-0.7.so.0.0.45, libqavm.a)
- /usr/local/share/avifile-0.7/action.cfg
- /usr/local/share/avifile0.7/pixmaps/ (картинки для aviplay)
- /usr/local/share/avifile-0.7/i18/
- /usr/local/share/avifile-0.7/scripts/ (avicap-shutdown, avicap-setnvram, avicap-boot)
- /usr/local/man/man1/ (avibench.1, avicap.1, avicat.1, avifile-config.1, avimake.1, aviplay.1,
avirec.1, avirecompress.1, avitype.1, kv4lsetup.1)
- /usr/local/include/avifile-0.7/
- aviplay: error while loading shared libraries:
/usr/local/lib/libaviplayavcodec-0.7.so.0: cannot restore segment prot after reloc: Permission denied
- chcon -t texrel_shlib_t /usr/local/lib/*.so
- chcon -t texrel_shlib_t /usr/local/lib/avifile-0.7/*.so
- chcon -t texrel_shlib_t /usr/local/lib/avifile-0.7/vidix/*.so
Установка avifile 0.7.43 в FC3 вручную (были какие-то проблемы с зависимостями в
репозитарии, а потом не стал переделывать).
Установка avifile 0.7.27-20030122 в RH8.0:
- создать и заполнить /usr/lib/win32 (у меня сложилась исторически и содержит файлы .dll, .acm, .qtx,
.ax, .drv, .vmp, .xa и даже разделяемых библиотек .so; откуда что взялось и кому нужно
понять невозможно, поэтому таскаю с собой все, что есть; для начала можно взять
с сайта пакета avifile;
затем дополнить при установке пакетов xine и mplayer)
- получить и развернуть исходные тексты
- ./configure --enable-x86opt
- make
- make install
- /usr/local/lib/avifile0.7/ (подгружаемые библиотеки с кодеками)
- /usr/local/lib/libaviplay*
- /usr/local/lib/libqavm*
- /usr/local/share/avifile0.7/ (картинки для aviplay)
- /usr/local/man/man1/aviplay.1
- /usr/local/include/avifile/
- /usr/local/bin/:
- aviplay (показать видео, может использоваться XVideo, OpenGL, SDL)
- avibench (измерение производительности процессора и видеосистемы на примере)
- avicat (вырезание кусков и слияние AVI файлов)
- avitype (получение информации о видео)
- avimake (изготовление AVI файла (DIVX) из последовательности JPEG)
- kv4lsetup
- avirec
- avicap
- avirecompress
- avifile-config
tvtime имитирует телевизор на компьютере, выводя изображение
на экран с частотой 50/60 Гц, снимая тем самым проблему с чересстрочным
изображением. Обычные способы борьбы с чересстрочной разверткой также имеются.
Для сборки требуются пакеты: audiofile-devel, esound-devel,
qt-devel, SDL-devel, SDL_image-devel, SDL_mixer-devel, SDL_net-devel.
Некоторые алгоритмы борьбы с чересстрочной разверткой требуют
как минимум 4 буферов video4linux.
Раннюю версию tvtime 0.13.tar.gz можно использовать как
учебное пособие для написания программ с интерфейсом video4linux
(только в tvtime.c надо: поставить break при разборе ключа d;
поменять ширину захвата с 720 на 768; добавить SECAM).
Используется /dev/rtc, так что надо выполнять с правами root.
Для установки параметров можно использовать v4lctl от xawtv.
Текущая версия tvtime увеличилась с 13 кБ до 618 кБ
(правда, половина это .png) и превратилась в полноценную программу со всеми рюшечками
(0.9.7 - уже 3.8 MB, из них 2.8 MB - шрифты в формате FreeFont).
В FC6 пакет tvtime версии 1.0.1-6 имеется в комплекте.
В FC3 пакет tvtime версии 0.9.15 имеется в комплекте (1.0.2 из dag).
Установка tvtime 0.9.7 в RH8.0:
- получить и развернуть исходные тексты
- ./configure
- в src/Makefile в переменной XML2_FLAG убрать в конце подстроку libxml
- make
- make install
- /usr/local/bin/tvtime
- /usr/local/share/tvtime: menubg.png, testlogo.png, credits.png,
FreeSansBold.ttf, FreeMono.ttf, FreeMonoBold.ttf,
FreeMonoOblique.ttf, freefont-sfd.tar.gz (это лишнее!)
- cp tvtime.1 /usr/local/man/man1/
- cp tvtimerc.5 /usr/local/man/man5/
- скопировать docs/default.tvtimerc в ~/.tvtime/tvtimerc и настроить его (самодокументирован)
Конфигурация и список станций хранятся в формате XML
(/etc/tvtime/tvtime.xml, ~/.tvtime/tvtime.xml, ~/.tvtime/stationlist.xml).
Поиск телестанций (записывается в раздел custom/SECAM;
если имеются каналы в PAL, то повторить, а потом слить результаты;
после поиска вписать имена каналов - UTF-8 - в stationlist.xml):
tvtime-scanner -n SECAM -i номер-входа-с-телевизионным-сигналом
Ключи запуска:
- -i (номер источника сигнала v4l, у меня: 0 - тюнер, 1 - Composite, 2 - S-Video)
- -m (вывести изображение на весь экран)
- -n (PAL, NTSC, SECAM)
- -f имя-частотной-таблицы (после tvtime-scanner необходимо указать "custom")
- -a (16:9)
Основные клавиши управления (можно переназначить или
использовать lirc с помощью утилиты tvtime-command
или записывать команды в ~/.tvtime/tvtimefifo)
- q - выход
- F1 или TAB или правая кнопка мышки - меню (полезно там побродить)
- Enter или левая кнопка мышки - показать текущие настройки
- стрелки вверх/вниз - смена канала
- цифры и Enter - ввод номера канала
- BS - предыдущий канал
- i - смена источника сигнала (если нет звука, попереключайте источник)
- m - mute
- +/- или стрелки влево/вправо - громкость
- f - вывести изображение на весь экран
- s - сохранить копию экрана
- F5/F6/F7 - настройки яркости, контраста, насыщенности (новая версия)
- F3/F4 - яркость (старая версия)
- F5/F6 - контраст (старая версия)
- F7/F8 - насыщенность (старая версия)
xanim 2.80.2 (не развивается с 1999) позволяет просматривать (и перекодировать) видео
в различных архаичных форматах (FLI/FLC, Indeo, Creative YUV, gif animated ;).
Модули могут использоваться другими пакетами.
Установка из RPM (FC6, FC3, RH8)
- взять RPM отсюда,
отсюда или отсюда
- rpm -i xanim-2.80.2-5.i386.rpm
- /usr/X11R6/bin/xanim
- /usr/X11R6/lib/xanim/mods/vid_cvid_2.0_linuxELFx86g21.xa
- /usr/X11R6/lib/xanim/mods/vid_cyuv_1.0_linuxELFx86g21.xa
- /usr/X11R6/lib/xanim/mods/vid_h261_1.0_linuxELFx86g21.xa
- /usr/X11R6/lib/xanim/mods/vid_h263_1.1_linuxELFx86g21.xa
- /usr/X11R6/lib/xanim/mods/vid_iv32_2.1_linuxELFx86g21.xa
- /usr/X11R6/lib/xanim/mods/vid_iv41_1.0_linuxELFx86g21.xa
- /usr/X11R6/lib/xanim/mods/vid_iv50_1.0_linuxELFx86g21.xa
- /usr/X11R6/man/man1/xanim.1x.gz
- /usr/share/doc/xanim-2.80.2/
Пакет mjpegtools предоставляет средства для захвата видео
в форматах MJPEG и YUV (YUV4MPEG, в новых версиях YUV4MPEG2),
утилиты преобразования форматов и фильтрации видео,
сжатие в MJPEG, MPEG-1 и MPEG-2, в т.ч. в виде, подходящем для записи на VideoCD и SVCD
(включая галереи неподвижных изображений), MPEG-4 (DivX).
Форматы YUV4MPEG и YUV4MPEG2 поддерживаются многими другими пакетами.
Теоретически также позволяет редактировать видео (включая переходы), но
в пакетном режиме, что удобным не назовешь. В основном, использую для удаления шума
(yuvdenoise очень хорош), обрезки кадров (yuvscaler очень быстр) и сжатия MPEG
(поддерживает все ограничения аппаратных проигрывателей и неподвижные изображения для
VideoCD/SVCD). Для программирования и записи на CD можно использовать vcdimager.
Установка в FC6 из пакетов mjpegtools и mjpegtools-devel
версии 1.9.0 из репозитария freshrpms (в livna более старая версия - 1.8.0-7 -
в пакетах mjpegtools, mjpegtools-devel, mjpegtools-gui, mjpegtools-libs).
Установка версии 1.6.2 в FC3 из исходников:
- получить и развернуть в отдельную директорию
исходные тексты jpeg-mmx-0.1.6.tar.gz,
перейти в нее
- ./configure
- make (не устанавливать!)
- получить и развернуть в отдельную директорию
исходные тексты mjpegtools-1.6.2.tar.gz,
перейти в нее
- ./configure --with-jpeg-mmx=директория-jpeg-mmx-0.1.6 --without-quicktime --with-dv-yv12 --with-x
--enable-large-file --enable-cmov-extensions --enable-simd-accel
- make clean
- make (новый gcc не любит goto)
- make install
- /usr/local/lib/libmjpegutils.a
- /usr/local/lib/liblavfile*
- /usr/local/lib/liblavjpeg*
- /usr/local/lib/liblavrec*
- /usr/local/lib/liblavplay*
- /usr/local/lib/libmplex2*
- /usr/local/lib/libmpeg2encpp*
- /usr/local/lib/pkgconfig/mjpegtools.pc
- /usr/local/bin/mjpegtools-config
- /usr/local/include/mjpegtools/
- /usr/local/bin/
- lavrec (запись в форматах .avi, .qt, .movtar со сжатием MJPEG с
соответствующего аппаратного устройства или обычного video4linux,
например на основе Bt848/Bt878 с
помощью программного сжатия)
- testrec (тестовая программа записи звука)
- lavvideo (тестовая программа захвата с v4l)
- lavinfo (информация об изображении и звуке)
- lavplay (проигрывание записей в форматах .avi, .qt, .movtar со сжатием MJPEG
на аппаратуре типа Zoran, DC10 или программно (SDL), позволяет создавать
edit list для последующего использования)
- glav (простейший графический создаватель edit list на уровне cut/paste;
команды см. README.glav)
- lavtrans (преобразует записи со сжатием MJPEG из одного формата в другой,
позволяет также конструировать новую запись используя edit list)
- lav2wav (извлекает звук в формате WAV из записей в форматах
.avi, .qt, .movtar со сжатием MJPEG или edit list)
- lavaddwav (добавить WAV к AVI или QT)
- lav2yuv (преобразование записей в форматах .avi, .qt, .movtar со сжатием MJPEG
или edit list в формат YUV4MPEG2)
- yuv2lav (преобразование из формата YUV4MPEG2 в записи в
форматах .avi, .qt, .movtar со сжатием MJPEG)
- jpeg2yuv (преобразование последовательности JPEG в YUV4MPEG2)
- yuvplay (проигрывание записей в формате YUV4MPEG2, используется SDL)
- ppmtoy4m (преобразование последовательности PPM в YUV4MPEG2)
- y4mtoppm (преобразование из YUV4MPEG2 в последовательность PPM,
потребуется также pnmsplit)
- pgmtoy4m (псевдо PGM от mpeg2dec и pgmpipe преобразуются в YUV4MPEG2 4:2:0p)
- y4mcolorbars (создает тестовый шаблон в формате YUV4MPEG2)
- y4mshift (сдвиг изображения в каждом кадре потока)
- yuvfps (вставляет или удаляет кадры в поток, подгоняя под требуемый fps;
есть yuvmotionfps)
- y4mblack (создание кадров определённого цвета, не обязательно чёрного)
- y4mtoyuv (преобразование из YUV4MPEG2 в EYUV для mpeg4ip)
- yuvinactive (закрасить прямоугольник в каждом кадре потока)
- png2yuv (преобразование последовательности PNG в YUV4MPEG2)
- ypipe (какая-то тестовая программа)
- lavpipe (комбинирует несколько источников видео с использованием фильтров
и скрипта pipe list в YUV4MPEG2; см. также README.lavpipe; кстати, во времена СССР
за умение писать осмысленные pipe list давали государственную премию ;)
- -lav2divx (преобразование записей в форматах .avi, .qt, .movtar со сжатием MJPEG
или edit list в формат AVI со сжатием DivX; используется пакет avifile;
ключ --encoder позволяет использовать любой кодек этого пакета)
- -yuv2divx (преобразование из YUV4MPEG2 с добавлением звука в
формат AVI со сжатием DivX; используется пакет avifile;
ключ --encoder позволяет использовать любой кодек этого пакета)
- -divxdec (преобразование AVI файла, понимаемого пакетом avifile в формат YUV4MPEG2,
.avi, .qt, .movtar со сжатием MJPEG или WAV)
- mp2enc (преобразование звука из WAV (PCM) в MPEG-2 layer-II, для получения MP3 используйте lame)
- mpeg2enc (преобразование из YUV4MPEG2 в формат видео MPEG-1 (ES) или MPEG-2 (PES)
с соблюдением профилей VideoCD и SVCD, в т.ч. неподвижные изображения;
позволяет делать пометки для дальнейшей разрезки на отдельные CD)
- mplex (объединение элементарных аудио (MP2, MP3, AC3) и видео потоков MPEG-1/MPEG-2 в
программный/системный поток с соблюдением профилей VideoCD и SVCD;
разрезает получившийся поток на отдельные CD)
- lav2mpeg (скрипт для преобразования записей в форматах .avi, .qt, .movtar со сжатием MJPEG
или edit list в VCD/SVCD/MPEG-1/MPEG-2 с удалением шумов и масштабированием;
лучше выбирать параметры отдельных программ самому, если, конечно, важен результат)
- !lav2avi.sh
- mpegtranscode (недоделанный скрипт для преобразования MPEG в формат, совместимый с VCD/SVCD)
- yuvscaler (быстрое масштабирование YUV4MPEG2 потока, обрезание кадров,
преобразование форматов кадра 16:9 и 4:3, смена порядка полей, изменение порядка строк,
подгонка под VCD или SVCD)
- yuvdenoise (подавитель шумов YUV4MPEG2 потока с использованием похожести
соседних кадров и компенсацией движения; распознает черную кайму вокруг изображения
и подавляет эффект чересстрочного изображения)
- yuvmedianfilter (простенький подавитель шумов YUV4MPEG2 потока путем размазывания
мусора (не всей картинки!) по окрестностям)
- yuvycsnoise (подавлением шумов YUV4MPEG2 потока,
внесенных некачественным NTSC Y/C разделителем)
- yuvkineco (восстановление фильмов в формате YUV4MPEG2 потока,
покуроченных преобразованием pulldown 2-3
(преобразование прогрессивного фильма в чересстрочный NTSC удвоением каждого пятого поля);
частота кадров результата д.б. 23.97 fps,
иначе придется вставлять дублирующие кадры)
- yuvcorrect, yuvcorrect_tune (пакетный и интерактивный фильтры по редактированию: последовательность
полукадров, яркость, гамма, цветовой сдвиг)
- transist.flt (фильтр - переход от одного видео к другому)
- matteblend.flt (фильтр - смешивание по альфа каналу)
- multiblend.flt (фильтр - смешивание 2 видеопотоков различными способами)
- /usr/local/info/mjpeg-howto.info*
- /usr/local/man/man1: mjpegtools.1 и отдельные тексты для каждой программы
- /usr/local/man/man5/yuv4mpeg.5
Рассмотрим некоторые способы применения пакета
(у меня накопился большой экспериментальный материал по mjpegtools,
но я выложу его отдельно позднее). В примерах используются программы
streamer из xawtv и lame.
Захват 10-секундного тестового отрезка с SVHS видеомагнитофона
со сжатием MJPEG в формате AVI и преобразование его в MPEG-1
(мощности P4 2400 достаточно для захвата полного кадра и еще немного остается):
streamer -r 25 -s 384x288 -t 0:10 -n pal -i S-Video -f mjpeg -F stereo -o test.avi
lav2yuv test.avi | mpeg2enc -o video.m1v
lav2wav test.avi | mp2enc -o audio.mp2
mplex audio.mp2 video.m1v -o movie.mpg
Захват отдельно видео в формате YUV4MPEG2 и звука в WAV,
удаление чересстрочной развертки (deinterlace в yuvdenoise включается ключом -F,
в документации ошибка) и преобразование в MPEG-1:
streamer -q -r 25 -s 768x576 -t 3:00 -n pal -i S-Video -F stereo -o testbig.yuv -O audio.wav
mp2enc -o audio.mp2 < audio.wav
yuvdenoise -F -f < testbig.yuv | mpeg2enc -o video.m1v
mplex audio.mp2 video.m1v -o testbigdei.mpg
Подавление шума для того же видеофрагмента, уменьшение
размера кадра под ограничения MPEG-2 MP@ML и преобразование в MPEG-2
для нестандартного SVCD:
yuvdenoise -F < testbig.yuv | yuvscaler -M RATIO_1_1_1_1 -M BICUBIC -O SIZE_720x576 | \
mpeg2enc -f 5 -V 200 -b 1152 -D 10 -o video.m2v
mplex -f 5 audio.mp2 video.m2v -o testbigdn.mpg
Получение MPEG-2 со звуковой дорожкой в формате MP3
(аппаратный проигрыватель не воспринимает такой набор, хотя
умеет проигрывать MP3!):
lame -b 128 -h audio.wav > audio.mp3
mplex -f 4 video.m2v audio.mp3 -o testbigdn720m2mp3.mpg
Получение MPEG-2, готового для записи на SVCD:
cat testbigdn.yuv | yuvscaler -O SVCD | mpeg2enc -f 4 -o video.m2v
mplex -f 4 video.m2v audio.mp2 -o testbigdn.svcd.mpg
Получение MPEG-1, готового для записи на VCD:
cat testbigdn.yuv | yuvscaler -O VCD | mpeg2enc -f 1 -o video.m1v
mplex -f 1 video.m1v audio.mp2 -o testbigdn.vcd.mpg
Фильтр, который я использую для очень шумного источника,
который надо сильно сжать (границы рамки подбираются отдельно для каждого фильма):
yuvscaler -I USE_736x496+16+36 -n p -M RATIO_1_1_1_1 -O SIZE_736x496 | \
yuvdenoise -F -l 1 -t 8 -p 8 -S 100 | yuvmedianfilter -r 2 -t 2
Формат yuv4mpeg (YUV4MPEG2, для mjpegtools версии 1.5 и выше)
описывает только видео, звук должен храниться отдельно.
Поток видеоданных состоит из заголовка потока и последовательности кадров.
Заголовок потока - текстовая строка "YUV4MPEG2 ", за которой следуют разделяемые
пробелами поля. Завершается заголовок "\n". Поле состоит из односимвольного
имени и подряд идущего значения:
- W - ширина кадра в пикселях
- H - высота кадра в пикселях
- I - формат развертки:
- p - прогрессивная
- t - верхнее поле первым
- b - нижнее поле первым
- ? - формат развертки неизвестен
- F - частота кадров в виде отношения числитель:знаменатель
- A - геометрическое соотношение ширины пикселя (не кадра!)
к высоте в виде отношения двух чисел
- X - строка метаданных, не может содержать пробелы
Каждый кадр состоит из заголовка кадра и 3 байтовых массивов (planar
CCIR-601 Y'CbCr 4:2:0) - отдельно яркость, отдельно Cb и Cr для нечетных
точек нечетных строк. Строки полей при черезстрочном формате перемежаются
в кадре. Размер кадра берется из заголовка потока.
Заголовок кадра - текстовая строка "FRAME ", за которой следуют разделяемые
пробелами поля. Завершается заголовок "\n". Поле состоит из односимвольного
имени и подряд идущего значения:
- X - строка метаданных, не может содержать пробелы
Библиотека libmjpegutils содержит C функции для работы с потоками в формате
YUV4MPEG2. Интерфейс описан в yuv4mpeg.h. Способ использования
библиотеки легко понять из текста написанной мной утилиты
yuvrange (-h - это help) для вырезки интервала кадров
из потока YUV4MPEG2 (почему-то в составе пакета такой утилиты не нашлось).
В этом же тексте можно увидеть и неправильный способ работы с потоком YUV4MPEG2
(опция получения разности потоков), не перепутайте ;).
Утилита yuvsplit (-h - это help)
позволяет вырезать из потока YUV4MPEG2 отдельную цветовую плоскость
в "сыром" формате для ее последующей обработки.
Утилита raw422toy4m (-h - это help)
позволяет преобразовать "сырой" видеопоток в цветовом пространстве 4:2:2 planar
(например, получается при захвате с помощью "streamer -f 422p ...") в поток YUV4MPEG2
с возможным преобразованием чересстрочной развертки в последовательность
кадров с частотой 50 fps (-d, -i). Возможна выдача гистограммы (-v 2) и экспериментальный
режим выравнивания начал строк развертки для плохих VHS записей (-s).
Пакет transcode предоставляет множество фильтров для
преобразования видеопотоков.
В FC6 установил пакет transcode версии 1.0.2-11.fc6
из репозитария freshrpms (в livna есть пакет версии 1.0.2-12.lvn6, но он тянет
более старый mjpegtools).
В FC3 установил пакет transcode версии 0.6.14 из репозитария at (1.0.0
из dag, 1.0.2 из at тянет свою версию mjpegtools).
Установка transcode 0.6.3 в RH8.0:
- поставить пакет bzip2-devel, который почему-то был пропущен при установке RH 8.0
(без него не распознается ImageMagick, кстати, необходим ImageMagick-devel)
- заодно RH забыла включить в ImageMagick-devel файл api.h и все, что он за собой тянет
- получить и развернуть
исходные тексты
- ./configure --enable-v4l
- посмотреть на таблицу распознанных модулей - все ли подключилось
- еще можно было бы обеспечить связку с модулями постобработки из пакета mplayer и qt
- make
- make install
- /usr/local/share/doc/transcode/
- /usr/local/man/man1: tccat.1, tcprobe.1, tcdemux.1, tcscan.1, tcextract.1, tcdecode.1, tcmodinfo.1,
avisplit.1, avimerge.1, avifix.1, avisync.1
- /usr/local/share/doc/transcode/html/
- /usr/local/lib/transcode
- libioaux*
- import_nuv*, import_af6*, import_net*, import_v4l*, import_yuv*, import_avi*, import_mpeg2*, import_vdrac3*,
import_ac3*, import_dv*, import_vob*, import_raw*, import_nvrec*, import_yuv4mpeg*, import_lav*,
import_null*, import_divx*, import_mp3*, import_dvd*, import_im*, import_imlist*, af6_decore*,
import_xml*, import_mplayer*, import_rawlist*, import_ogg*, import_xvid*, import_ffmpeg*, import_lzo*
- export_null*, export_wav*, export_pcm*, export_af6*, export_raw*, export_divx4*, export_divx4raw*,
export_divx5raw*, export_ppm*, export_divx5*, export_ffmpeg*, export_lame*, export_net*, export_dvraw*,
export_dv*, export_mpeg*, export_yuv4mpeg*, export_mpeg2enc*, export_mp2enc*, export_fame*,
export_im*, export_ogg*, export_toolame*, export_sampeg*, export_mjpeg*, export_jpg*, export_lzo*,
export_xvid*, export_xvidcvs*, export_xvidraw*
- filter_null*, filter_invert*, filter_32detect*, filter_32drop*, filter_yuy2toyv12*, filter_skip*, filter_astat*,
filter_aclip*, filter_cut*, filter_cshift*, filter_mask*, filter_dnr*, filter_xsharpen*, filter_smartdeinter*,
filter_normalize*, filter_testframe*, filter_fields*, filter_clone*, filter_videocore*, filter_tc_video*, filter_tc_audio*,
filter_29to23*, filter_smooth*, filter_dilyuvmmx*, filter_logo*, filter_logoaway*, filter_divxkey*, filter_extsub*,
filter_extsub2*, filter_resample*, filter_test*, filter_yuvdenoise*, filter_yuvmedian*, filter_decimate*,
filter_ivtc*, filter_preview*, filter_pv*, filter_subtitler*
- /usr/local/bin/
- tcmplex
- tcextract
- tcdecode
- tcscan
- tcdemux
- tccat
- tcprobe
- avimerge
- avisplit
- avifix
- avisync
- transcode
- tcmodinfo
xawtv предоставляет набор программ для управления видеоустройством
video4linux, захвата видеопотока в файл в различных форматах или вывода его на экран,
а также вспомогательные утилиты.
В FC3 установил пакет xawtv версии 3.94 из репозитария dag.
Установка xawtv 3.83 в RH8.0:
- получить и развернуть исходные тексты
- ./configure --enable-xfree-ext --enable-xvideo --enable-lirc --enable-gl --enable-dv --enable-mmx
при сборке с использованием Xvideo режим grabdisplay работает лишь при запуске xawtv с ключом -noxv
- make
-
- make install
- /usr/local/bin:
- dump-mixers
- record
- showriff
- showqt
- streamer
- webcam
- radio
- fbtv
- v4l-info
- v4l-conf
- ntsc-cc
- propwatch
- v4lctl
- xawtv-remote
- rootv
- xawtv
- pia
- motv
- /usr/local/share/xawtv: частоты
- /usr/local/lib/xawtv: flt-gamma.so, flt-invert.so, flt-disor.so, conv-mjpeg.so, conv-audio.so, read-avi.so,
write-avi.so, read-dv.so, write-dv.so, drv0-v4l2.so, drv0-v4l2-old.so, drv1-v4l.so,
snd-oss.so, flt-smooth.so, bilinear.so, cubic.so, linear-blend.so, linedoubler.so
- /usr/local/man/man1/: dump-mixers.1, fbtv.1, motv.1, mtt.1 (teletext, самой программы нет),
ntsc-cc.1, pia.1, propwatch.1, radio.1,
record.1, rootv.1, scantv.1, showriff.1, streamer.1, ttv.1, v4lctl.1, webcam.1, xawtv.1, xawtv-remote.1
- /usr/local/man/man5/xawtvrc.5
- /usr/local/man/man8/v4l-conf.8
- /usr/X11R6/lib/X11/app-defaults/Xawtv
- /usr/X11R6/lib/X11/de/app-defaults/MoTV
- /usr/X11R6/lib/X11/it/app-defaults/MoTV
- /usr/X11R6/lib/X11/fr/app-defaults/MoTV
- /usr/X11R6/lib/X11/de_DE.UTF-8/app-defaults/MoTV
- /usr/X11R6/lib/X11/app-defaults/mtt
- /usr/X11R6/lib/X11/app-defaults/MoTV
- экранные шрифты устанавливаются отдельно
- взять и развернуть tv-fonts-1.0.tar.bz2 в отдельную директорию
- make
- mkfontdir
- xset fp+ "`pwd`:unscaled"
- xset fp rehash
- если понравилось, то добавить директорию к списку сервера шрифтов X11 (/etc/X11/xfs/config),
чтобы было всегда, но я не понял зачем они нужны
v4lctl позволяет управлять устройством video4linux, что полезно не только
для удаленного управления xawtv, но и для других пакетов, которые не имеют собственных
средств управления устройством видеозахвата. Примеры:
v4lctl setnorm SECAM
v4lctl color 50%
v4lctl bright 50%
v4lctl contrast 50%
Пример захвата видеопотока в формате YUV4MPEG2 для
дальнейшей обработки mjpegtools (композитный вход,
время записи - 1 минута, отдельная запись звука в PCM/WAV):
streamer -r 25 -s 768x576 -t 1:00 -n secam -i Composite1 -F stereo -o vhs.yuv -O vhs.wav
Пример захвата видеопотока в формате RAW 4:2:2 planar:
streamer -r 25 -s 768x576 -t 0:10 -n pal -i Composite1 -o 422p.raw -f 422p
Пример захвата видеопотока в формате AVI/MJPEG
(требуется уменьшить качество: "-j 50" для P4 2400, а это 6 ГБ/час;
streamer -h выдает список доступных для записи форматов):
streamer -d -r 25 -s 768x576 -t 90:00 -n pal -i S-Video -f mjpeg -F stereo -o fullmovie.avi
Проигрыватель видео xine.
В FC6 поставил пакеты xine-lib, xine-lib-devel, xine-lib-extras
версии 1.1.4-1.fc6 (1.1.6) из extras;
затем xine-lib-extras-nonfree 1.1.4-1.lvn6 (1.1.6) и xine 0.99.4-10.lvn6 из livna;
затем xine-skins 1.10-1.fc из freshrpms. mp4 не проигрывает.
В FC3 поставил пакеты xine-lib-1.0.0, xine-lib-devel-1.0.0 и xine-0.99.3
из репозитария dag. Дополнительно потребовался пакет libXvMCW-0.9.3.
Установка в RH8.0:
- получить и развернуть xine-lib-1-beta12.tar.gz (разделяемые библиотеки), перейти туда
- ./configure (недостатки:
- aalib (мне не нужен ascii art)
- Theora (открытый формат видеофайлов)
- libFLAC?
- libpng-config
- ALSA
- нужен nvtv для вывода на ТВ через видеокарту с Nvidia, нашел позднее
- не нашел OpenGL (пусть, все равно в состоянии алфа), нашел после установки новых драйверов от NVidia
- хотел libdvdnav >= 0.1.4 (на сайте лежит только 0.1.3?!), теперь включен в состав пакета
- make
- make install
- /usr/local/man/man1: xine-config.1
- /usr/local/share/doc/xine/faq: faq.html, faq.txt
- /usr/local/share/doc/xine/: README*, dataflow.dia
- /usr/local/share/aclocal/xine.m4
- /usr/local/include/libintl.h
- /usr/local/include/xine.h
- /usr/local/include/xine/*
- /usr/local/lib/charset.alias
- /usr/local/lib/libxine*
- /usr/local/lib/xine/*
- /usr/local/share/locale/locale.alias
- /usr/local/share/gettext/* (уже есть /usr/share/gettext!)
- /usr/local/share/locale/*/LC_MESSAGES/libxine1.mo
- /usr/local/share/xine/libxine1/fonts/*
- /usr/local/lib/pkgconfig/libxine.pc
- /usr/local/bin/xine-config
- ldconfig
- получить и развернуть xine-ui-0.9.21-tar.gz (проигрыватель со шкурками), перейти туда
- ./configure (хочет curl >= 7.10.2, доступ к http://, ftp:// и др.)
- make
- make install
- /usr/local/bin: xine, xine-remote, xine-check, xine-bugreport, fbxine
- /usr/local/man/??/man1/xine.1, aaxine.1, xine-check.1, xine-remote.1, xine-bugreport.1
- /usr/local/man/man1: xine.1, aaxine.1, xine-check.1, xine-remote.1, xine-bugreport.1
- /usr/local/share/doc/xine-ui/*
- /usr/local/share/doc/xitk/README
- /usr/local/share/locale/*/LC_MESSAGES/xine-ui.mo
- /usr/local/share/locale/*/LC_MESSAGES/xitk.mo
- /usr/local/share/xine/desktop/xine.desktop
- /usr/local/share/pixmaps/xine*
- /usr/local/share/xine/visuals/*
- /usr/local/share/xine/skins/*/*
- /usr/local/share/xine/skins/: xinetic, xine-ui_logo.mpv
- убеждаемся, что наполнен /usr/lib/win32
- ранее требовалось поставить
xine-dvdnav-0.9.13
(использует libdvdread и libdvdnav) - навигация по меню DVD, но теперь он не собирается,
а навигация есть и так (большая буква N)
- кроме "штатного" проигрывателя, использующего библиотеки xine-lib, имеется множество
проигрывателей, разработанных сторонними организациями;
я поставил для примера gxine-0.2.1 (проигрыватель для gnome), ничего в нем интересного не оказалось,
думаю, что и остальные такого же класса (кто-то отметился, что сделал проигрыватель для Gnome,
кто-то - для KDE)
- ./configure
- make
- make install
- /usr/local/share/gxine/pixmaps/*
- /usr/local/bin/gxine
- /usr/local/man/man1/gxine.1
- /usr/local/man/de/man1/gxine.1
- /usr/local/lib/gxine/gxineplugin*
- /usr/local/share/gnome/apps/Multimedia/gxine.desktop
- изо всего множества дополнений осмысленным выглядит xine-vcdx-1-beta2 -
интерпретатор VCD/SVCD PBC для xine (состояние работ - альфа, будет слит
после доработок; для использования надо запускать xine с MRL vcdx://),
в новых версиях требуется предварительно ставить libcdio-0.6.tar.gz и
vcdimager-0.7.15-cdio.tar.gz
- ./configure
vcdimager: checking for libxml - version >= 2.3.8... no (хотя у меня libxml 2.4.23)
ошибка в /usr/bin/libxml2-config: должен выдавать -I/usr/include/libxml2/libxml
- make
- make install
- /usr/local/lib/xine/plugins/1.0.0/xineplug_inp_vcdx.so
- /usr/local/lib/xine/plugins/1.0.0/xineplug_inp_vcdx.la
mplayer - проигрыватель и кодировщик видео.
Установка MPlayer-1.0rc1 в FC6 (пакеты и кодеки остались с прошлого раза,
предварительно доставить множество -devel пакетов или доставить недостающие сейчас оп результатам первого
./configure ...):
- доставить не упомянутые нигде vstream-client и vstream-client-devel версии 1.2-2.fc6 из freshrpms
- доставить не упомянутые нигде live-devel версии 0-0.13.2006.08.07.lvn6 из livna
- получить и развернуть исходные тексты
- ./configure --enable-gui --enable-largefiles --enable-linux-devfs --enable-menu
--enable-xmms --enable-xvmc --with-xanimlibdir=/usr/X11R6/lib/xanim/mods
--enable-lirc --language=ru --disable-inet6 --enable-radio --enable-radio-capture --enable-radio-v4l2
- отсутствуют возможные кодеки: amr_wb, amr_nb и amr_nb_fp (надо вставлять исходные тексты внутрь libavcodec,
пакет amrnb-devel не помогает); toolame (заброшен?)
- также нет: libfame (надо вставлять исходные тексты внутрь libavcodec),
external liblzo (lzo1x.h перенесли в /usr/include/lzo/),
nut (Network UPS Tools?!)
- заглянуть в configure.log, может ещё чего нет
- make
- make install
- /usr/local/lib/libdha.so*
- /usr/local/lib/mplayer/vidix/ (cyberblade_vid.so, mach64_vid.so, mga_crtc2_vid.so,
mga_vid.so, nvidia_vid.so, pm3_vid.so, radeon_vid.so, rage128_vid.so,
savage_vid.so, sis_vid.so, unichrome_vid.so)
- /usr/local/bin/mplayer (он же gmplayer)
- /usr/local/bin/mencoder
- /usr/local/man/man1/mplayer.1
- /usr/local/man/man1/mencoder.1
- /usr/local/share/pixmaps/mplayer.xpm
- /usr/local/share/applications/mplayer.desktop
- chcon -t texrel_shlib_t /usr/local/lib/*.so
- chcon -t texrel_shlib_t /usr/local/lib/mplayer/vidix/*.so
- тестируем на запускаемость: mplayer -h
- шрифт arialuni.ttf.bz2 кладём в /usr/local/share/mplayer/font/subfont.ttf (24MB!),
удаляем имя шрифта из ~/.mplayer/gui.conf, делаем символьную ссылку
~/.mplayer/subfont.ttf на /usr/local/share/mplayer/subfont.ttf
- загрузить шкурки
(необязательно все ;) в /usr/local/share/mplayer/Skin/, поправить права доступа,
на одну из них сделать ссылку default
- тестовый запуск: gmplayer
Установка MPlayer-1.0rc1 в FC3 (пакеты и кодеки остались с прошлого раза):
- получить и развернуть исходные тексты
- ./configure --enable-gui --enable-largefiles --enable-linux-devfs --enable-menu --enable-xmms --enable-xvmc --with-xanimlibdir=/usr/X11R6/lib/xanim/mods --enable-lirc --language=ru --disable-inet6
- отсутствуют возможности ввода: vstream, pvr, radio, live555, mpdvdkit2, dvb
- отсутствуют возможные кодеки: amr_wb, amr_nb, faac(?), musepack, libtheora,
speex, twolame, toolame
- заглянуть в configure.log, может ещё чего нет
- make
- make install
- /usr/local/lib/libdha.so*
- /usr/local/lib/mplayer/vidix/ (cyberblade_vid.so, mach64_vid.so, mga_crtc2_vid.so,
mga_vid.so, nvidia_vid.so, pm3_vid.so, radeon_vid.so, rage128_vid.so,
savage_vid.so, sis_vid.so, unichrome_vid.so)
- /usr/local/bin/mplayer (он же gmplayer)
- /usr/local/bin/mencoder
- /usr/local/man/man1/mplayer.1
- /usr/local/man/man1/mencoder.1
- /usr/local/share/pixmaps/mplayer.xpm
- /usr/local/share/applications/mplayer.desktop
- тестируем на запускаемость: mplayer -h
- шрифт arialuni.ttf.bz2 кладём в /usr/local/share/mplayer/subfont.ttf,
удаляем имя шрифта из ~/.mplayer/gui.conf, делаем символьную ссылку
~/.mplayer/subfont.ttf на /usr/local/share/mplayer/subfont.ttf
- загрузить шкурки
(необязательно все ;) в /usr/local/share/mplayer/Skin/, поправить права доступа,
на одну из них сделать ссылку default
- тестовый запуск: gmplayer
Установка MPlayer-1pre8 в FC3:
- установил пакеты ladspa.i386 и ladspa-devel.i386 из репозитария us
- установить дополнительные кодеки в /usr/local/lib/codecs/ (я установил all-20050412,
странные права доступа у некоторых файлов)
- получить и развернуть исходные тексты
- ./configure --enable-gui --enable-largefiles --enable-linux-devfs --enable-menu --enable-xmms --enable-xvmc --with-xanimlibdir=/usr/X11R6/lib/xanim/mods --enable-lirc --language=ru
- отсутствуют возможности ввода: vstream, live.com
- отсутствуют возможные кодеки: libspeex, faac, amr_wb, amr_nb, libtheora, toolame, twolame
- заглянуть в configure.log, может ещё чего нет
- make
- make install
- /usr/local/lib/libdha.so*
- /usr/local/lib/mplayer/vidix/ (cyberblade_vid.so, mach64_vid.so, mga_crtc2_vid.so,
mga_vid.so, nvidia_vid.so, pm3_vid.so, radeon_vid.so, rage128_vid.so,
savage_vid.so, sis_vid.so, unichrome_vid.so)
- /usr/local/bin/mplayer (он же gmplayer)
- /usr/local/bin/mencoder
- /usr/local/man/man1/mplayer.1
- /usr/local/man/man1/mencoder.1
- тестируем на запускаемость: mplayer -h
- шрифт arialuni.ttf.bz2 кладём в /usr/local/share/mplayer/subfont.ttf,
удаляем имя шрифта из ~/.mplayer/gui.conf, делаем символьную ссылку
~/.mplayer/subfont.ttf на /usr/local/share/mplayer/subfont.ttf
- загрузить шкурки
(необязательно все ;) в /usr/local/share/mplayer/Skin/, поправить права доступа,
на одну из них сделать ссылку default
- тестовый запуск: gmplayer
Установка MPlayer-1pre7 в FC3:
- установил пакеты ladspa.i386 и ladspa-devel.i386 из репозитария us
- установить дополнительные кодеки в /usr/local/lib/codecs/ (я установил all-20050412,
странные права доступа у некоторых файлов)
- получить и развернуть исходные тексты
- ./configure --enable-gui --enable-largefiles --enable-linux-devfs --enable-menu --enable-xmms --enable-xvmc --with-xanimlibdir=/usr/X11R6/lib/xanim/mods --enable-lirc
- русский язык игнорируется (--language)
- autodetect не срабатывает для libfame (--enable-libfame так и не починили) и lirc
- отсутствуют возможности ввода: vstream, live.com
- отсутствуют возможные кодеки: x264, amr_wb, amr_nb, libdts, libtheora, toolame
- libmp1e ?
- заглянуть в configure.log, может ещё чего нет
- make
- make install
- /usr/local/lib/libdha.so*
- /usr/local/lib/mplayer/vidix/ (cyberblade_vid.so, mach64_vid.so, mga_crtc2_vid.so,
mga_vid.so, nvidia_vid.so, pm3_vid.so, radeon_vid.so, rage128_vid.so,
savage_vid.so, sis_vid.so, unichrome_vid.so)
- /usr/local/bin/mplayer (он же gmplayer)
- /usr/local/bin/mencoder
- /usr/local/man/man1/mplayer.1
- /usr/local/man/man1/mencoder.1
- тестируем на запускаемость: mplayer -h
- шрифт arialuni.ttf.bz2 кладём в /usr/local/share/mplayer/subfont.ttf,
удаляем имя шрифта из ~/.mplayer/gui.conf, делаем символьную ссылку
~/.mplayer/subfont.ttf на /usr/local/share/mplayer/subfont.ttf
- загрузить шкурки
(необязательно все ;) в /usr/local/share/mplayer/Skin/, поправить права доступа,
на одну из них сделать ссылку default
- тестовый запуск: gmplayer
Установка (MPlayer-0.90) в RH8.0:
- убедиться, что все вышеперечисленные библиотеки и пакеты установлены
(может, кроме ogle, tvtime и xine, хотя я без них не пробовал ;)
- дополнить /usr/lib/win32 подправленными кодеками
отсюда
и отсюда
- дополнить /usr/lib/win32 кодеками из qt6dlls.tar.bz2 (QuickTime.qts, QuickTimeEssentials.qtx, qtmlClient.dll)
- получить и развернуть исходные тексты
- ./configure --enable-largefiles --enable-gui --enable-new-conf --enable-menu
--enable-xmms --enable-dvdnav --enable-shared-pp
--with-xanimlibdir=/usr/X11R6/lib/xanim/mods --enable-qtx-codecs
(LIVE.COM Streaming Media libraries ... no)
(--enable-libfame сломано; можно скопировать ее внутрь, собрать, не устанавливать,
скопировать библиотеки (.libs) и *.h на внешний уровень; но я так устал с ними бороться :(
- make
- make install
- /usr/local/lib/libdha-0.1.so
- /usr/local/lib/libdha.so
- /usr/local/lib/mplayer/vidix/ (cyberblade_vid.so, mach64_vid.so, mga_crtc2_vid.so, mga_vid.so, pm3_vid.so, radeon_vid.so, rage128_vid.so)
- /usr/local/lib/libpostproc.so.0.0.1
- /usr/local/lib/libpostproc.so
- /usr/local/include/postproc/postprocess.h
- /usr/local/lib/mplayer/vidix/*.so
- /usr/local/bin/mplayer (он же gmplayer)
- /usr/local/bin/mencoder
- /usr/local/etc/mplayer/codecs.conf
- /usr/local/man/man1/mplayer.1 (он же mencoder.1)
- загрузить шрифты
и поместить шрифты нужного размера (все файлы из одной поддиректории)
в /usr/local/share/mplayer/font/ (странно, но раньше там лежали koi8r-font.tar.bz2)
- загрузить шкурки
(необязательно все ;) в /usr/local/share/mplayer/Skin/ (поправить права доступа)
Просмотр 50-герцового видео в родном разрешении:
Преобразование из одного видео формата (MPEG) в другой (YUV4MPEG2)
mplayer -vo yuv4mpeg -frames 50 final.m1v
Преобразование части DVD в AVI/MPEG4 (-vop lavcdeint,hqdn3d
полезен для исправления ошибок создателей DVD из телевизионного материала;
"лишние" звуковые дорожки и субтитры будут потеряны):
mencoder -dvd номер-главы -vop lavcdeint,hqdn3d -oac mp3lame -lameopts cbr:br=128:aq=0:mode=1 -ovc lavc -lavcopts vcodec=mpeg4:vqscale=2:vmax_b_frames=0:vhq -o result.avi
Вырезать часть фильма с DVD (если размер получившегося файла
оказался более 2 ГБ, то лучше порезать главу на части с помощью -chapter,
иначе его нельзя будет записать на DVD)
mplayer -dvd номер-главы -dumpstream -dumpfile имя-файла
Восстановление индекса AVI (иногда требуется -forceidx):
mencoder -idx withoutindex.avi -ovc copy -oac copy -o withindex.avi
Извлечение звуковой дорожки с преобразованием:
mplayer исходный-AVI -vc null -vo null -ao pcm -af resample=44100:0:2,equalizer=-12:-8:-2:0:0:0:0:0:-8:-12,volume=20 -aofile звуковая-дорожка
Оцифровка фильма с кассеты (S-Video, AverMedia 307) "по-быстрому" (cbr - потому что
в спецификации AVI звук VBR не предусмотрен и вызывает множество проблем, quite - потому что на отладочную печать
уходит очень много CPU, не забыть отключить хранитель экрана!):
mencoder -endpos 1:52:30 -quiet tv:// \
-tv driver=v4l2:input=3:width=720:height=576:fps=25:norm=PAL:alsa:audiorate=48000:amode=1:forcechan=2:immediatemode=1 \
-vf crop=684:560:16:8,lavcdeint,hqdn3d,expand=720:576 -force-avi-aspect 4:3 \
-ovc lavc -lavcopts vcodec=mpeg4:keyint=90:vqscale=4:vhq \
-oac mp3lame -lameopts cbr:br=128:mode=1 \
-o film.avi
или если процессор слабоват
mencoder -endpos 1:52:30 -quiet tv:// \
-tv driver=v4l2:input=3:width=720:height=576:fps=25:norm=PAL:alsa:audiorate=48000:immediatemode=1 \
-vf crop=684:556:16:8,lavcdeint,denoise3d,expand=720:576 -force-avi-aspect 4:3 \
-ovc lavc -lavcopts vcodec=mpeg4:keyint=130:vhq:vqscale=4 \
-oac mp3lame -lameopts cbr:br=64:mode=3 \
-o film.avi
или со второй ТВ-карты (ТВ-канал настроен заранее, звук с amux,
не забывать установить capture на 50%)
mencoder -endpos 1:0 -quiet tv:// \
-tv driver=v4l2:device=/dev/video1:input=0:width=720:height=576:fps=25:norm=SECAM:outfmt=yv12:\
alsa:audiorate=48000:amode=1:forcechan=2:immediatemode=1 \
-noautoexpand -vf crop=720:560:0:8,lavcdeint,denoise3d,expand=720:576 \
-force-avi-aspect 4:3 -ovc lavc -lavcopts vcodec=mpeg4:keyint=90:vqscale=2:vhq \
-oac mp3lame -lameopts cbr:br=128 \
-o film.avi
или сжатие звука отдельным проходом для ещё более слабого процессора
mencoder -channels 1 -noautoexpand -quiet tv:// \
-tv driver=v4l2:input=3:width=720:height=576:fps=25:norm=PAL:alsa:audiorate=48000:immediatemode=1 \
-vf crop=688:560:16:0,lavcdeint,hqdn3d,expand=720:576 -force-avi-aspect 4:3 \
-ovc lavc -lavcopts vcodec=mpeg4:keyint=120:vqscale=4:vhq \
-oac pcm -o film.avi
mencoder film.avi -ovc copy -oac mp3lame -lameopts cbr:br=64:mode=3 -force-avi-aspect 4:3 -o film_audio.avi
lavc при сжатии mpeg4 вставляет fourcc "FMP4", не все видеопроигрыватели это понимают,
поменять его на привычный XVID можно ключом "-ffourcc XVID".
Использование XvMC (ощущается только при масштабировании, NVIDIA 6600 умеет только idct)
mplayer -vc ffmpeg12mc -vo xvmc:queue:ck-method=bg -vm -fs
Обработка DVD меню (dvdnav) сломана, похоже, навсегда.
Сжатие без потерь huffyuv (43 fps, в 2.25 раза), из-за какого-то глюка иногда приходится
использовать outfmt=444p (или при проигрывании: -vf swapuv):
mencoder tv:// -tv driver=v4l2:input=3:outfmt=422p:width=720:height=576:fps=25:norm=SECAM \
-vf crop=672:560:48:0 \
-oac pcm -ovc lavc -lavcopts vcodec=huffyuv:pred=1:format=422p -o huffyuv.avi
mencoder tv:// -tv driver=v4l2:input=0:outfmt=422p:width=720:height=576:fps=25:norm=SECAM:\
buffersize=40:audiorate=48000:alsa:amode=1:forcechan=2 \
-oac pcm -ovc lavc -lavcopts vcodec=ffvhuff:context=1:format=422p -o huffyuv.avi
Очистка изображения и изготовление DVD-совместимого MPEG-2 большого размера
(или несовместимого MPEG-1):
mkfifo dump.fifo
mplayer huffyuv.avi -nosound -vo yuv4mpeg:interlaced:file=dump.fifo -vf expand=720:576 -sws 8 -nolirc -noconsolecontrols -nortc
на другом терминале
yuvdenoise -F -t 8 -p 8 -S 100 < dump.fifo | yuvmedianfilter -r 2 -t 2 | \
mpeg2enc -v 1 -q 2 -f 9 -K kvcd -s -n p -F 3 -a 2 -c -2 2 -4 1 -r 24 -N 1. -S 2047 -B 256 -o имя.m2v
или
mpeg2enc -v 1 -q 4 -f 0 -K kvcd -s -n p -F 3 -a 2 -c -2 2 -4 1 -r 24 -N 1. -S 2047 -B 256 -g 4 -G 96 -V 2000 -b 9000 -o имя.m1v
mplayer имя.avi -ni -vo null -vc dummy -hardframedrop -channels 1 -benchmark -ao pcm:file=имя.wav
lame -b 64 -h -m m имя.wav имя.mp3
mplex -v 1 -o имя-%d.mpg -f 9 -V -h имя.mp3 имя.m2v
или
mplex -v 1 -o имя-%d.mpg -f 0 -V -r 9000 -b 2000 -h имя.mp3 имя.m1v
rm dump.fifo
Использование двух компьютеров (чем-то их надо буферизовать:
bfr):
на вспомогательном компьютере (открыть порт 55555)
nc -l -p 55555 | bfr -b100m -m2% | yuvmedianfilter | \
mpeg2enc -v 1 -q 4 -f 0 -K kvcd -s -n p -F 3 -a 2 -c -2 2 -4 1 -r 24 -N 1. -S 2047 -B 96 -g 4 -G 96 -V 2000 -b 9000 -o имя.m1v
на основном компьютере
mkfifo dump.fifo
mplayer huffyuv.avi -nosound -vo yuv4mpeg:interlaced:file=dump.fifo -vf expand=720:576 -sws 8 -nolirc
на основном компьютере на другом терминале
yuvdenoise -F -t 8 -p 5 < dump.fifo | bfr -b20m -m2% | nc имя-вспомогательного-компьютера 55555
Сжатие после очистки в MPEG-1 с параметрами, обеспечивающими больший
коэффициент сжатия (не совместим с VCD):
mpeg2enc -v 1 -q 4 -K kvcd -s -n p -F 3 -a 2 -c -2 2 -4 1 -r 8 -N 1. -f 0 -g 4 -G 96 -V 2000 -b 9000 -o имя.m1v
Сжатие без потерь huffyv12, адаптивная таблица (53 fps, 2.86;
без адаптивной таблицы 62 fps и 2.17; -vf expand выдаёт мусор в этом формате, приходится его обрамлять:
-vf yuy2,expand=720:576,scale):
mencoder источник -oac pcm -ovc lavc -lavcopts vcodec=ffvhuff:context=1:vstrict=-1 -o ffvhuff1.avi
Сжатие без потерь Golomb-Rice (19pfs, 4.56; декодирует также медленно; уменьшение контекста
увеличивает скорость до 20 fps и уменьшает сжатие до 4.42):
mencoder источник -noautoexpand -oac pcm -ovc lavc -lavcopts vcodec=ffv1:coder=0:context=1:vstrict=-1 -o ffv1golomb.avi
Сжатие без потерь CABAC (15 fps, 4.86):
mencoder источник -noautoexpand -oac pcm -ovc lavc -lavcopts vcodec=ffv1:coder=1:context=1:vstrict=-1 -o ffv1a.avi
Сжатие H.264/AAC:
mencoder -oac faac -faacopts br=128 -ovc x264 -x264encopts \
qp=18:scenecut=-1:direct_pred=auto:me=umh:subq=7:trellis=2:nopsnr:threads=4 \
источник -o результат
Пакет mpeg4ip позволяет кодировать MPEG-4 (требуется lame),
передавать его по сети и проигрывать на клиентских компьютерах.
Установка без потокового сервера (mpeg4ip-0.9.8),
требуется gcc 3.2, желательно установить FAAC/FAAD (или хотя бы sndfile):
- взять и распаковать
исходные тексты
- ./bootstrap --disable-server
- make (230 MB!)
- make install
- /usr/local/bin
- mp4live - кодирование в реальном времени из v4l
- mp4encode - кодирование mp4 с помощью avi2raw, lboxcrop, faac,
mp4venc, mp4creator, xvidenc
- mp4extract - извлечение дорожки из MP4
- mp4dump, mp4trackdump - выдача информации о MP4
- mp4info
- avidump - выдача информации о AVI (собирается отдельно)
- avi2raw - позволяет извлечь звук или видео из AVI в отдельный файл
(например, позволяет превратить звуковую дорожку в асмостоятельный
MP3 файл, собирается отдельно)
- yuvdump - показать "сырой" файл
- mp4player, gmp4player
- sdl-config (!)
- iptv_prog
- /usr/local/lib/ (может молча заместить библиотеку от другого пакета!)
- libconfig_file.la, libconfig_file.a
- libmp4.la, libmp4.a
- libmp4v2.so.0.0.0, libmp4v2.so.0, libmp4v2.so, libmp4v2.la, libmp4v2.a
- libmp4av.la, libmp4av.so.0.0.0, libmp4av.so.0, libmp4av.so, libmp4av.a
- libmsg_queue.la, libmsg_queue.a
- libsdp.la, libsdp.a
- libSDLmain.a
- libSDL.la, libSDL-1.2.so.0.0.5, libSDL-1.2.so.0, libSDL.so, libSDL.a
- libhttp.la, libhttp.a
- libmp4util.la, libmp4util.so.0.0.0, libmp4util.so.0, libmp4util.so, libmp4util.a
- mp4player_plugin/
- raw_audio_plugin.la, raw_audio_plugin.so.0.0.0, raw_audio_plugin.so.0, raw_audio_plugin.so, raw_audio_plugin.a
- celp_plugin.la, celp_plugin.so.0.0.0, celp_plugin.so.0, celp_plugin.so, celp_plugin.a
- raw_video_plugin.la, raw_video_plugin.so.0.0.0, raw_video_plugin.so.0, raw_video_plugin.so, raw_video_plugin.a
- xvid_plugin.la, xvid_plugin.so.0.0.0, xvid_plugin.so.0, xvid_plugin.so, xvid_plugin.a
- mpeg3_video_plugin.la, mpeg3_video_plugin.so.0.0.0, mpeg3_video_plugin.so.0, mpeg3_video_plugin.so, mpeg3_video_plugin.a
- h261_plugin.la, h261_plugin.so.0.0.0, h261_plugin.so.0, h261_plugin.so, h261_plugin.a
- isma_rtp_plugin.la, isma_rtp_plugin.so.0.0.0, isma_rtp_plugin.so.0, isma_rtp_plugin.so, isma_rtp_plugin.a
- h261_rtp_plugin.la, h261_rtp_plugin.so.0.0.0, h261_rtp_plugin.so.0, h261_rtp_plugin.so, h261_rtp_plugin.a
- aac_plugin.la, aac_plugin.so.0.0.0, aac_plugin.so.0, aac_plugin.so, aac_plugin.a
- mp3_plugin.la, mp3_plugin.so.0.0.0, mp3_plugin.so.0, mp3_plugin.so, mp3_plugin.a
- mpeg4_iso_plugin.la, mpeg4_iso_plugin.so.0.0.0, mpeg4_iso_plugin.so.0, mpeg4_iso_plugin.so, mpeg4_iso_plugin.a
- wav_plugin.la, wav_plugin.so.0.0.0, wav_plugin.so.0, wav_plugin.so, wav_plugin.a
- /usr/local/include/SDL/
- /usr/local/man/man3/SDL*.3
- /usr/local/share/aclocal/sdl.m4
- /usr/local/man/man1: gmp4player.1, mp4creator.1, mp4encode.1, mp4live.1
- /usr/local/man/man3/MP4*
- /usr/local/man/manm/api.mpt
mp4player/gmp4player
Приведу пример оцифровки VHS (SVHS) записей в почти максимальном
качестве. В принципе, можно ещё немного улучшить качество, захватывая в режиме
YUV 4:2:2 вместо YUV 4:2:0, но это потребует слишком много времени.
Предварительная подготовка:
- создать новую файловую систему (ext2fs или ext3fs в режиме writeback) из расчета
1 ГБ на минуту видео
- остановить хранитель экрана и прочие ненужные программы: видеозахват - это
задача реального времени, затраты процессора невелики, но непостоянны и
неотложны
- модуль bttv загрузить с параметрами combfilter=1 (без этого придется захватывать
в режиме YUV 4:2:2), gbuffers=6 (меньше - будет много пропущенных кадров,
больше - будут проблемы с синхронизацией), gbufsize=0x105000 (зачем зря
память занимать)
- настроить яркость, контраст и интенсивность цвета с помощью xawtv
- настроить (gnome-volume-control, aumix-X11, wmix, mix2000) уровень line и igain,
сделать пробную запись с помощью "record -r 48000"
(звук в динамиках во время записи не соответствует записанному!)
- второй выход видеомагнитофона подключить к телевизору, чтобы можно было
контролировать, что записывается
Захват (mono16 у меня - ac97_codec + i810_audio - не работает):
- streamer -d -r 25 -s 768x576 -t 41:45 -n pal -i S-Video -o filma.yuv -O /otherdisk/filma.wav -F stereo -R 48000 -b 48
Проверка качества захвата:
- mplayer -audiofile filma.wav filma.yuv
Проверить на всякий случай не занижен ли уровень звука:
Очистка звука (все равно VHS - дрянь) и сведение к моно (
в тяжелых случаях можно использовать audacity):
- sox filma.wav -c 1 filma.denoise.wav bandreject 75 50
Сжатие звука:
- lame -b 64 -h -m m filma.denoise.wav filma.denoise.mp3
Естественно, очистку и сжатие можно и нужно объединить:
- sox filma.wav -c 1 -t wav - bandreject 75 50 | lame -b 64 -h -m m - filma.mp3
Очистка изображения и избавление от черестрочности (помехи
убираются за счет снижения четкости изображения):
- yuvdenoise -F -f < filma.yuv > filma.denoise.yuv (источник идеального качества)
- yuvdenoise -F < filma.yuv > filma.denoise.yuv (источник похуже)
- yuvdenoise -F -l 6 -S 100 < filma.yuv | yuvmedianfilter -r 2 -t 2 > filma.denoise.yuv (источник плохого качества)
- yuvdenoise -F -r 16 -l 6 -t 8 -p 8 < filma.yuv | yuvmedianfilter -r 3 -t 8 > filma.denoise.yuv (источник очень плохого качества, дальнейшее усиление очистки
приводит к заметным искажениям изображения)
Перед очисткой можно вставить фильтр, убирающий черные полоски,
только необходимо учесть, что "окошко" полезного изображения слегка "плавает"
(VHS-источник не так стабилен, как DVD!) и придется повозиться с заданием
соотношения сторон привоспроизведении:
- yuvscaler -v 0 -I USE_752x512+8+32 -n p -M RATIO_1_1_1_1 -O SIZE_752x512
Кодирование в MPEG-1 с нестандартной длиной GOP и размером
видеобуфера (аппаратный плейер не воспроизведет), переменный поток (более 9 Мб/с
будет неудобно читать с DVD-RW);
можно, точнее нужно совместить с очисткой изображения;
очень медленно - 1.8 fps, сильная очистка уплощает изображени - хорошо для мультфильмов ;), занимает мало места - 210 минут на DVD-R); зачастую отключение генерации
B-фреймов (--bgroup 1) уменьшает размер на 3-5% (и ускоряет собственно кодирование
вдвое):
- yuvdenoise -F -r 16 -l 6 -t 8 -p 8 -S 100 < filma.yuv | yuvmedianfilter -r 3 -t 8 | mpeg2enc -f 0 -F 3 -n p -a 1 -g 4 -G 96 -q 4 -b 9000 -r 8 -2 2 -4 1 -N -v 1 -V 2500 -s -o filma.m1v
Чуть меньшая очистка и тщательное кодирование
(2.5 fps, вполне приличное качество, занимает мало места - 205 минут на DVD-R):
-
yuvdenoise -F -l 1 -t 8 -p 8 -S 100 < filma.yuv | yuvmedianfilter -r 2 -t 2 | mpeg2enc -f 0 -F 3 -n p -a 1 -g 4 -G 96 -q 4 -b 9000 -r 8 -2 2 -4 1 -N -v 1 -V 2500 -s -o filma.m1v
Средняя очистка (и деинтерлейсинг) и тщательное кодирование
(4 fps, вполне приличное качество, занимает изрядно места - 110 минут на DVD-R;
увеличение q до 6 уменьшает размер файла в 1.5 раза, но на большом экране
можно заметить небольшие дефекты изображения):
- yuvdenoise -F -l 1 -t 8 -p 8 -S 100 < filma.yuv | mpeg2enc -f 0 -F 3 -n p -a 1 -g 4 -G 96 -q 4 -b 9000 -r 8 -2 2 -4 1 -h -v 1 -V 2500 -s -o filma.quick.m1v
Минимальная очистка (и деинтерлейсинг) и быстрое кодирование
(5 fps, вполне приличное качество, занимает изрядно места - 108 минут на DVD-R):
- yuvdenoise -F -f < filma.yuv | mpeg2enc -f 0 -F 3 -n p -a 1 -g 4 -G 96 -q 4 -b 9000 -r 8 -2 4 -4 4 -N -v 1 -V 2500 -s -o filma.superquick.m1v
Быстрое кодирование без очистки (13 fps, могло бы быть быстрее,
если сделать нормальную буферизацию; вполне приличное качество, но занимает
много места - 90 минут на DVD-R):
- mpeg2enc -f 0 -F 3 -n p -a 1 -g 4 -G 96 -q 4 -b 9000 -r 8 -2 4 -4 4 -N -v 1 -V 2500 -s -o filma.supersuperquick.m1v < filma.yuv
Мультиплексирование видео и звука
- mplex -v 1 -h -b 1000 -f 0 -V -r 9000 -o filma.mpg filma.denoise.mp3 filma.m1v
Захват видео производится аналогично предыдущему случаю.
Быстрое (32 fps на P4 2400, при этом процессор свободен на 15%)
кодирование в MPEG4/AVI (кстати, максимальный размер AVI файла - 2 ГБ, в которые
влезает 1 час):
- mencoder -ovc lavc -lavcopts vcodec=mpeg4:vqscale=4:vmax_b_frames=0 -o filma.avi filma.yuv
Добавление параметра ildct (фильма чересстрочная) замедляет
скорость кодирования до 30 fps. При этом размер файла уменьшился на 8%.
Добавление параметра vhq замедляет скорость кодирования до
24 fps (при этом процессор загружен почти полностью). При этом размер файла уменьшился
на 2%.
vhq совместно с ildct замедляет скорость кодирования до
21 fps. При этом размер файла уменьшился на 2%. Однако, полное удаление
чересстрочности (-vop lavcdeint) дает лучший результат (и быстрее!).
mpeg_quant не изменяет скорости кодирования, но чуть-чуть
уменьшает размер фала.
v4mv замедляет скорость кодирования до 18 fps.
При этом размер файла уменьшился меньше, чем на 1%.
Увеличение vmax_b_frames (1, 2 или 3) замедляет скорость и увеличивает размер файла.
Параметры trell, qpel также вредны.
subcmp=5 замедляет скорость кодирования c 21 fps до 14 fps.
При этом размер файла уменьшился на 1%. Остальные варианты хуже.
Использование фильтра "-vop denoise3d"
("-vop lavcdeint,denoise3d") почти не замедляет кодирование, а размер файла
уменьшается драматически (в 1.5 раза!). hqdn3d замедляет кодирование с 23 fps
до 18 fps.
Медленное и качественное кодирование в MPEG4/AVI
- mencoder -v -vop lavcdeint,hqdn3d -ovc lavc -lavcopts vcodec=mpeg4:vqscale=2:vmax_b_frames=0:vhq:mpeg_quant:v4mv:subcmp=5 -o filma.avi filma.yuv (11 fps)
- mencoder -v -vop lavcdeint,denoise3d -ovc lavc -lavcopts vcodec=mpeg4:vqscale=2:vmax_b_frames=0:mpeg_quant -o filma.avi filma.yuv (27 fps, на 5% больше)
- mencoder -v -vop lavcdeint,denoise3d -ovc lavc -lavcopts vcodec=mpeg4:vqscale=2:vmax_b_frames=0:mpeg_quant -o filma.avi -audiofile filma.denoise.wav -oac mp3lame -lameopts abr:br=64:aq=0:mode=3 filma.yuv (одновременно со звуком - статистика выдается неполная; 2 часа на DVD; 3 часа при q=3; 4 часа при q=4, но квадратики уже видны)
dvd-slideshow
dvd95
dvdisaster
dvdrip/dvdrip-master
dvdstyler
DVDRipOMatic
avidemux/avidemux-cli/avidemux-gtk/avidemux-qt
devede
k9copy
kmediafactory/kmediafactory-libs/kmediafactory-devel
kplayer
smplayer
mandvd
vlc
lxdvdrip
mythvideo/mytharchive
ogmrip
streamdvd/streamdvd-gui/streamdvd-streamanalyze
sub2srt
subtitleripper
thoggen
vobcopy
|
Bog BOS: dw: Программы для работы с видео в Linux
|
Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru