Difference between revisions of "GenReS(плагин)"
(→Переменные статуса) |
(запятые расставлены) |
||
(35 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ru|en=GenReS|cn=GenReS_cn}} | {{ru|en=GenReS|cn=GenReS_cn}} | ||
+ | |||
+ | GenReS - универсальный плагин для браузеров, основанных на Mozilla. | ||
+ | Он позволяет использовать внешние программы для отображения HTML-тэгов EMBED и OBJECT, | ||
+ | либо запускать их в полном окне браузера. | ||
+ | |||
+ | Плагин вызывает скрипты-посредники, которые запускают нужные программы-просмотрщики и позволяют управлять ими и контролировать состояние из JavaScript. | ||
+ | Наборы функций и вызываемых программ могут быть изменены и дополнены путём изменения существующих и создания новых | ||
+ | управляющих скриптов. | ||
+ | |||
+ | Существующий набор скриптов позволяет демонстрировать электронные документы с помощью [http://www.openoffice.org OpenOffice.org], видео, аудио и статические изображения, используюя программы display из [http://www.imagemagick.org/ ImageMagick], [http://www.MPlayerHQ.hu/ mplayer, mencoder] и [[Camera software#ElphelOgm|ElphelOgm]]. | ||
+ | Изображения и видео можно масштабировать, зеркально отражать, и вращать. | ||
+ | Для звуковых и видео файлов и потоков работают функции приостановки, продолжения, пошагового просмотра, позицирования, | ||
+ | записи в виде набора файлов, а также другие описанные ниже. | ||
+ | |||
+ | == Конфигурирование == | ||
+ | |||
+ | Конфигурационные файлы "~/.mozilla/genres/genres.conf" или "/etc/genres.conf" содержат основные настройки. Дополнительные настройки для для программ mplayer, mencoder и ElphelOgm содержатся в файле "~/.mozilla/genres/mplayer.conf", который используется управляющим скриптом mplayer.pl. Файлы могут содержать комментарии начинающиеся с # как в shell. | ||
+ | |||
+ | === Настройки в genres.conf === | ||
+ | |||
+ | ;mozillastreams={1|0} : использовать или нет потоки (и кэш) браузера для протоколов, которые он поддерживает (http, https и ftp); | ||
+ | ;debuglevel={1|0} : включить/выключить вывод отладочной информации; | ||
+ | ;background={-1|0|1} : цвет объекта во аремя загрузки: 0 - чёрный, 1 - белый, -1 - по-умолчанию (серый). | ||
+ | |||
+ | === Настройки в mplayer.conf === | ||
+ | |||
+ | ;out_file_once=шаблон : шаблон для имени фудио/видеофайла; | ||
+ | ;out_file_jpegs=шаблон : то же для сохранения видео по кадрам в виде отдельных картинок (saveformat=jpeg); | ||
+ | ;out_file=шаблон : шаблон для имени файла для тэгов с параметром save=auto; | ||
+ | ;out_file_jpegs_auto=шаблон : шаблон для комбинации saveformat=jpeg save=auto; | ||
+ | ;vo={x11, xv} : видео-драйверы (см. man mplayer о параметре -vo); | ||
+ | ;ao={arts, esd, alsa, oss} : аудио-драйверы (см. man mplayer о параметре -ao); | ||
+ | ;not_ask={1|0} : больше не спрашивать имя файла для сохранения для тэгов с параметром save=auto; | ||
+ | ;not_ask_jpegs={1|0} : то же для save=auto и saveformat=jpeg; | ||
+ | ;frames=число : максимальное количество кадров в одном файле при записи для разбития на несколько файлов. | ||
== Cтатические параметры тегов == | == Cтатические параметры тегов == | ||
− | + | ;lowres : параметр прореживания для ускоренного DCT [0-3], 0-полное разрешение, 3-1/8 | |
− | ;lowres : параметр прореживания для ускоренного DCT | ||
;width : ширина окна | ;width : ширина окна | ||
;loop : повтор проигрывания (0 или не указано - бесконечно) | ;loop : повтор проигрывания (0 или не указано - бесконечно) | ||
− | ;fps : частота кадров | + | ;fps : частота кадров |
− | ; | + | ;frameskip : пропуск n кадров из каждых n+1 (только для rtp/mjpeg через ElphelOgm) |
+ | ;framedelay : количество полных кадров удерживаемых в буфере (только для rtp/mjpeg через ElphelOgm) | ||
+ | ;rotate : угол поворота изображения по часовой стрелке в градусах (0|90|180|270) | ||
+ | ;mirror : зеркальносимметричное отображение относительно вертикальной оси (true|false) | ||
+ | ;flip : то же относительно горизонтали (true|false); установка flip и mirror одновременно эквивалентна rotate=180 | ||
+ | ;saveformat=jpeg|ogm|avi : формат для записи видео (jpeg, ogm - только для rtp/mjpeg через ElphelOgm) | ||
== Динамически изменяемые переменные (можно указывать и как параметры тегов) == | == Динамически изменяемые переменные (можно указывать и как параметры тегов) == | ||
− | ;pause=1 или play=0 : приостановить проигрывание | + | ;href : url файла или потока; |
− | ;pause=0 или play=1 : продолжить проигрывание | + | ;src : пока просто другое имя для href; |
− | ;run=1 : запустить плеер если он прекратил работу (по ошибке или концу файла) | + | ;pause=1 или play=0 : приостановить проигрывание; |
− | ;run=0 : завершить плеер | + | ;pause=0 или play=1 : продолжить проигрывание; |
− | ;save : запустить | + | ;filepos=sec : переместиться на указанное время от начала в секундах или в процентах, может не работать, если mplayer по этому файлу не перемещается; |
− | ;save=ask : всегда спрашивать имя файла для записи | + | ;framestep=что-нибудь : показать следующий кадр и остановиться (пошаговый просмотр); |
− | ;save=auto : не спрашивать если пользователь укажет в | + | ;run=1 : запустить плеер если он прекратил работу (по ошибке или концу файла); |
+ | ;run=0 : завершить плеер; | ||
+ | ;save : запустить запись вместо показа; | ||
+ | :;save=ask : всегда спрашивать имя файла для записи; | ||
+ | :;save=auto : не спрашивать если пользователь укажет в диалоге. | ||
== Переменные статуса == | == Переменные статуса == | ||
Line 24: | Line 67: | ||
То что слева - имя переменной (пробелы и нелатинские буквы удаляются), справа - значение. | То что слева - имя переменной (пробелы и нелатинские буквы удаляются), справа - значение. | ||
− | ; | + | ;frame : сообщение плеера/рекордера о последнем кадре |
− | |||
;error : последнее сообщение об ошибке | ;error : последнее сообщение об ошибке | ||
+ | |||
+ | информация о статических картинках (от display) | ||
+ | |||
+ | ;imgtype : формат (JPEG, TIFF и т.д.) | ||
+ | ;imgsize : размер картинки (например 800x600) | ||
+ | ;filelength : длина файла (например 89kb) | ||
Возможны другие но они пока не используются. | Возможны другие но они пока не используются. | ||
− | ;run : особая переменная - состояние плеера 0 - незапущен, 1 - запущен; | + | ;run : особая переменная - состояние плеера 0 - незапущен, 1 - запущен, для режима записи становится в 0 когда пользователь отказался указать файл; |
− | ;pause, play : аналогично - состояние приостановки проигрывания. | + | ;pause, play : аналогично - состояние приостановки проигрывания, в том числе и по framestep. |
− | == | + | == Callback функции == |
По приходу данных от плеера они передаются в переменные объекта и | По приходу данных от плеера они передаются в переменные объекта и | ||
Line 41: | Line 89: | ||
;onrun:вызывается по запуску и остановке видеоплеера или процесса записи | ;onrun:вызывается по запуску и остановке видеоплеера или процесса записи | ||
;onerror:по приходу сообщения об ошибке | ;onerror:по приходу сообщения об ошибке | ||
− | ; | + | ;onframe:при очередном кадре |
;onmousedown и др стандартные callback функции:уже предоставлены браузером и не нуждаются в какой-то обработке внутри плагина | ;onmousedown и др стандартные callback функции:уже предоставлены браузером и не нуждаются в какой-то обработке внутри плагина | ||
+ | |||
+ | == Back-end программы == | ||
+ | |||
+ | В настоящий момент задействованы: | ||
+ | |||
+ | * mplayer (компилировать с live555); | ||
+ | * mencoder из пакета mplayer; | ||
+ | * ElphelOgm - для получения mjpeg видео по чистому multicast или unicast rtp; | ||
+ | * display из пакета ImageMagick - для показа статических картинок; | ||
+ | * ooffice (OpenOffice.org) для показа документов. | ||
+ | |||
+ | Чтобы задействовать ElphelOgm, должен быть установлен mime-type начинающийся с video/m | ||
+ | и URL должен быть вида: rtp://ip:port/ , где: | ||
+ | |||
+ | ;ip -: multicast ip потока | ||
+ | ;port -: multicast port | ||
+ | |||
+ | Unicast тоже можно принимать, для этого указывается адрес и порт получателя, и сервер также должен быть сконфигурирован чтобы постоянно слать udp видеопоток на этот адрес и порт. Динамическое изменение URL не поддерживается для RTP. | ||
+ | Вместо этого используйте последовательность команд: obj.run=0; obj.src=...; obj.run=1; | ||
+ | |||
+ | {| border="2" cellpadding="6" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" | ||
+ | |+ '''Поддерживаемые MIME-типы и вызываемые программы''' | ||
+ | !MIME-тип!!Протокол||Приложение | ||
+ | |- | ||
+ | | | ||
+ | application/x-display | ||
+ | image/tiff | ||
+ | image/x-tiff | ||
+ | image/x-tif | ||
+ | image/sun-raster | ||
+ | image/x-sun-raster | ||
+ | image/x-rgb | ||
+ | image/x-portable-pixmap | ||
+ | image/x-portable-graymap | ||
+ | image/x-portable-bitmap | ||
+ | image/x-portable-anymap | ||
+ | application/photoshop | ||
+ | application/x-photoshop | ||
+ | image/x-xcf | ||
+ | image/xcf | ||
+ | application/x-gimp | ||
+ | application/gimp | ||
+ | |http https ftp file||display | ||
+ | |- | ||
+ | | | ||
+ | video/ogg video/x-ogg application/x-elphel-ogm | ||
+ | video/x-theora video/theora | ||
+ | video/mpeg video/mjpeg | ||
+ | video/x-mpeg video/x-mpeg2 | ||
+ | video/quicktime video/x-quicktime application/x-quicktimeplayer | ||
+ | video/msvideo video/x-msvideo | ||
+ | application/x-drm-v2 | ||
+ | application/x-mplayer2 | ||
+ | video/x-ms-asf | ||
+ | video/x-ms-wm | ||
+ | video/x-ms-wmv | ||
+ | video/x-ms-wvx | ||
+ | video/sgi-movie | ||
+ | video/x-sgi-movie | ||
+ | video/dl | ||
+ | video/x-dl | ||
+ | video/sgi-movie | ||
+ | video/x-sgi-movie | ||
+ | video/anim | ||
+ | video/x-anim | ||
+ | video/fli | ||
+ | video/x-fli | ||
+ | |||
+ | audio/mp3 audio/x-mp3 | ||
+ | audio/mpeg2 audio/x-mpeg2 | ||
+ | audio/mpeg3 audio/x-mpeg3 | ||
+ | audio/mpeg audio/x-mpeg | ||
+ | application/ogg application/x-ogg | ||
+ | audio/ogg audio/x-ogg | ||
+ | audio/x-ms-wax | ||
+ | audio/wav audio/x-wav | ||
+ | audio/x-pn-wav audio/x-pn-windows-acm | ||
+ | |||
+ | |http https ftp file||mplayer mencoder | ||
+ | |- | ||
+ | | | ||
+ | application/x-elphel-ogm | ||
+ | video/mjpeg | ||
+ | |rtp||mplayer ElphelOgm | ||
+ | |- | ||
+ | | | ||
+ | application/vnd.oasis.opendocument.chart | ||
+ | application/vnd.oasis.opendocument.database | ||
+ | application/vnd.oasis.opendocument.formula | ||
+ | application/vnd.oasis.opendocument.graphics | ||
+ | application/vnd.oasis.opendocument.graphics-template | ||
+ | application/vnd.oasis.opendocument.image | ||
+ | application/vnd.oasis.opendocument.presentation | ||
+ | application/vnd.oasis.opendocument.presentation-template | ||
+ | application/vnd.oasis.opendocument.spreadsheet | ||
+ | application/vnd.oasis.opendocument.spreadsheet-template | ||
+ | application/vnd.oasis.opendocument.text | ||
+ | application/vnd.oasis.opendocument.text-master | ||
+ | application/vnd.oasis.opendocument.text-template | ||
+ | application/vnd.oasis.opendocument.text-web | ||
+ | |||
+ | application/vnd.sun.xml.calc | ||
+ | application/vnd.sun.xml.draw application/vnd.sun.xml.impress | ||
+ | application/vnd.sun.xml.math | ||
+ | application/vnd.sun.xml.writer | ||
+ | application/vnd.sun.xml.draw.template application/vnd.sun.xml.calc.template application/vnd.sun.xml.impress.template | ||
+ | application/vnd.sun.xml.writer.template | ||
+ | application/vnd.sun.xml.writer.global | ||
+ | |||
+ | text/rtf application/rtf | ||
+ | application/x-msword | ||
+ | application/msword | ||
+ | application/vnd.ms-excel | ||
+ | application/vnd.ms-powerpoint | ||
+ | application/mspowerpoint | ||
+ | |http ftp file||ooffice | ||
+ | |} | ||
+ | |||
+ | == Диагностика ошибок установки == | ||
+ | Запустите скрипт mplayer.pl из командной строки. Он находится в /usr/lib/genres. Если все необходимые perl модули установлены, | ||
+ | он должен напечатать несколько строк вида: "переменная=значение" и ожидать ввода. | ||
+ | Если вместо этого вы получите сообщение "Can't locate Gtk2.pm in @INC" значит необходимо установить этот модуль из вашего дистрибутива или | ||
+ | с [http://cpan.org CPAN]. | ||
+ | Другие ссылки: [http://gtk2-perl.sourceforge.net/ проект gtk2-perl], [http://cpan.org/modules/by-category/08_User_Interfaces/Gtk2/ gtk2-perl на CPAN], [http://freshmeat.net/projects/gtk2-perl/ gtk2-perl на freshmeat]. | ||
+ | |||
+ | Введите параметры как они представлены в HTML теге, но только по одному на строке и в конце добавьте run=1. Например: | ||
+ | type=video/mjpeg | ||
+ | url=rtp://232.168.0.9:20000/ | ||
+ | run=1 | ||
+ | Если MPlayer запустился, то эта часть работает, попробуйте посмотреть страницу примера входящую в состав пакета genres с помощью браузера mozilla или firefox. Если вместо окна с видео вы видите серый прямоугольник, значит возможно надо исправить URL на доступный. | ||
+ | |||
+ | Проверьте список установленных плагинов: <strong>about:plugins</strong> если GenReS отсутствует, возможно genres.so лежит не втом месте. | ||
+ | |||
+ | Плагин выдаёт много отладочной информации. Для её сбора запустите firefox из командной строки с перенаправлением вывода в файл. | ||
+ | Mozilla надо запускать с ключом -debug: | ||
+ | mozilla -debug >& moz.log | ||
+ | Если причина не ясна, сожмите файл с помощью Gzip или bzip2 и отправьте мне на изучение. | ||
+ | |||
+ | --[[User:Khlut|Sergey Khlutchin]] 15:49, 11 February 2006 (CST) | ||
+ | |||
+ | == Создание управляющих скриптов == | ||
+ | |||
+ | Для каждого тэга плагин запускает отдельный процесс-посредник. Обмен данными осуществляется через трубы (стандартные для юникса неименованные каналы). Для процесса-посредника каналы присоединены к стандартным вводу и выводу. Стандартный вывод ошибок совпадает со стандартным выводом. | ||
+ | Файловый дескриптор №3 открыт для ввода (так же через трубу) данных из файла, на который указывает параметр тэга SRC. (Этот параметр распознаётся браузером.) Если он содержит URL с поддерживаемым протоколом и включен параметр [[#Настройки в genres.conf|mozillastreams]], файл будет передаваться через эту трубу. | ||
+ | Данные через стандартные ввод/вывод передаются в виде текстовых строк по одной команде в строке. | ||
+ | {| border="2" cellpadding="6" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" | ||
+ | |+ '''Команды от плагина скрипту''' | ||
+ | |имя=значение | ||
+ | |переменной тэга было присвоено значение | ||
+ | (фактически в javascript остаётся старое значение до ответа скрипта); | ||
+ | |- | ||
+ | |. | ||
+ | |конец блока начальных значений параметров тэга; | ||
+ | |- | ||
+ | |PRINTEMBED | ||
+ | |требуется напечатать страницу содержащую тэг, в ответ следует передать данные в формате postscript; | ||
+ | |- | ||
+ | |PRINTFULL | ||
+ | |запрос печати для объекта в полном окне, все операции должен выполнить сам скрипт (включая диалоги); | ||
+ | |- | ||
+ | |EOF | ||
+ | |конец файла переданного через дескриптор №3 (труба не закрывается для возможности повторной передачи по запросу). | ||
+ | |} | ||
+ | {| border="2" cellpadding="6" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" | ||
+ | |+ '''Команды от скрипта плагину''' | ||
+ | |имя=значение | ||
+ | |присвоить значение параметру тэга, после чего будет вызвана функция (если определена) '''onимя()'''; | ||
+ | |- | ||
+ | |OPEN | ||
+ | |послать с начала файл (через дескриптор №3), на который указывает параметр SRC; | ||
+ | |- | ||
+ | |CLOSE | ||
+ | |закрыть трубу со стороны плагина (скрипт больше не сможет пользоваться дескриптором №3); | ||
+ | |- | ||
+ | |AUTOCLOSE | ||
+ | |автоматически закрывать трубу при окончании файла данных; | ||
+ | |- | ||
+ | |DESTROY | ||
+ | |закрыть поток файла данных браузера; | ||
+ | |- | ||
+ | |{javascript} | ||
+ | |выполнить скрипт в контексте объекта тэга. | ||
+ | |} |
Latest revision as of 01:03, 26 June 2008
in English | autotranslate | по-русски | 中文版
GenReS - универсальный плагин для браузеров, основанных на Mozilla. Он позволяет использовать внешние программы для отображения HTML-тэгов EMBED и OBJECT, либо запускать их в полном окне браузера.
Плагин вызывает скрипты-посредники, которые запускают нужные программы-просмотрщики и позволяют управлять ими и контролировать состояние из JavaScript. Наборы функций и вызываемых программ могут быть изменены и дополнены путём изменения существующих и создания новых управляющих скриптов.
Существующий набор скриптов позволяет демонстрировать электронные документы с помощью OpenOffice.org, видео, аудио и статические изображения, используюя программы display из ImageMagick, mplayer, mencoder и ElphelOgm. Изображения и видео можно масштабировать, зеркально отражать, и вращать. Для звуковых и видео файлов и потоков работают функции приостановки, продолжения, пошагового просмотра, позицирования, записи в виде набора файлов, а также другие описанные ниже.
Contents
Конфигурирование
Конфигурационные файлы "~/.mozilla/genres/genres.conf" или "/etc/genres.conf" содержат основные настройки. Дополнительные настройки для для программ mplayer, mencoder и ElphelOgm содержатся в файле "~/.mozilla/genres/mplayer.conf", который используется управляющим скриптом mplayer.pl. Файлы могут содержать комментарии начинающиеся с # как в shell.
Настройки в genres.conf
- mozillastreams={1|0}
- использовать или нет потоки (и кэш) браузера для протоколов, которые он поддерживает (http, https и ftp);
- debuglevel={1|0}
- включить/выключить вывод отладочной информации;
- background={-1|0|1}
- цвет объекта во аремя загрузки: 0 - чёрный, 1 - белый, -1 - по-умолчанию (серый).
Настройки в mplayer.conf
- out_file_once=шаблон
- шаблон для имени фудио/видеофайла;
- out_file_jpegs=шаблон
- то же для сохранения видео по кадрам в виде отдельных картинок (saveformat=jpeg);
- out_file=шаблон
- шаблон для имени файла для тэгов с параметром save=auto;
- out_file_jpegs_auto=шаблон
- шаблон для комбинации saveformat=jpeg save=auto;
- vo={x11, xv}
- видео-драйверы (см. man mplayer о параметре -vo);
- ao={arts, esd, alsa, oss}
- аудио-драйверы (см. man mplayer о параметре -ao);
- not_ask={1|0}
- больше не спрашивать имя файла для сохранения для тэгов с параметром save=auto;
- not_ask_jpegs={1|0}
- то же для save=auto и saveformat=jpeg;
- frames=число
- максимальное количество кадров в одном файле при записи для разбития на несколько файлов.
Cтатические параметры тегов
- lowres
- параметр прореживания для ускоренного DCT [0-3], 0-полное разрешение, 3-1/8
- width
- ширина окна
- loop
- повтор проигрывания (0 или не указано - бесконечно)
- fps
- частота кадров
- frameskip
- пропуск n кадров из каждых n+1 (только для rtp/mjpeg через ElphelOgm)
- framedelay
- количество полных кадров удерживаемых в буфере (только для rtp/mjpeg через ElphelOgm)
- rotate
- угол поворота изображения по часовой стрелке в градусах (0|90|180|270)
- mirror
- зеркальносимметричное отображение относительно вертикальной оси (true|false)
- flip
- то же относительно горизонтали (true|false); установка flip и mirror одновременно эквивалентна rotate=180
- saveformat=jpeg|ogm|avi
- формат для записи видео (jpeg, ogm - только для rtp/mjpeg через ElphelOgm)
Динамически изменяемые переменные (можно указывать и как параметры тегов)
- href
- url файла или потока;
- src
- пока просто другое имя для href;
- pause=1 или play=0
- приостановить проигрывание;
- pause=0 или play=1
- продолжить проигрывание;
- filepos=sec
- переместиться на указанное время от начала в секундах или в процентах, может не работать, если mplayer по этому файлу не перемещается;
- framestep=что-нибудь
- показать следующий кадр и остановиться (пошаговый просмотр);
- run=1
- запустить плеер если он прекратил работу (по ошибке или концу файла);
- run=0
- завершить плеер;
- save
- запустить запись вместо показа;
- save=ask
- всегда спрашивать имя файла для записи;
- save=auto
- не спрашивать если пользователь укажет в диалоге.
Переменные статуса
Это то что выдаёт mplayer или mencoder, в настоящий момент стороки просто разделяются на две части по первому из символов '=' или ':'. То что слева - имя переменной (пробелы и нелатинские буквы удаляются), справа - значение.
- frame
- сообщение плеера/рекордера о последнем кадре
- error
- последнее сообщение об ошибке
информация о статических картинках (от display)
- imgtype
- формат (JPEG, TIFF и т.д.)
- imgsize
- размер картинки (например 800x600)
- filelength
- длина файла (например 89kb)
Возможны другие но они пока не используются.
- run
- особая переменная - состояние плеера 0 - незапущен, 1 - запущен, для режима записи становится в 0 когда пользователь отказался указать файл;
- pause, play
- аналогично - состояние приостановки проигрывания, в том числе и по framestep.
Callback функции
По приходу данных от плеера они передаются в переменные объекта и
становятся доступны из javascript. При этом если задана соответствующая
функция с именем "on<имя переменной>", она будет вызвана.
- onrun
- вызывается по запуску и остановке видеоплеера или процесса записи
- onerror
- по приходу сообщения об ошибке
- onframe
- при очередном кадре
- onmousedown и др стандартные callback функции
- уже предоставлены браузером и не нуждаются в какой-то обработке внутри плагина
Back-end программы
В настоящий момент задействованы:
- mplayer (компилировать с live555);
- mencoder из пакета mplayer;
- ElphelOgm - для получения mjpeg видео по чистому multicast или unicast rtp;
- display из пакета ImageMagick - для показа статических картинок;
- ooffice (OpenOffice.org) для показа документов.
Чтобы задействовать ElphelOgm, должен быть установлен mime-type начинающийся с video/m и URL должен быть вида: rtp://ip:port/ , где:
- ip -
- multicast ip потока
- port -
- multicast port
Unicast тоже можно принимать, для этого указывается адрес и порт получателя, и сервер также должен быть сконфигурирован чтобы постоянно слать udp видеопоток на этот адрес и порт. Динамическое изменение URL не поддерживается для RTP. Вместо этого используйте последовательность команд: obj.run=0; obj.src=...; obj.run=1;
MIME-тип | Протокол | Приложение |
---|---|---|
application/x-display image/tiff image/x-tiff image/x-tif image/sun-raster image/x-sun-raster image/x-rgb image/x-portable-pixmap image/x-portable-graymap image/x-portable-bitmap image/x-portable-anymap application/photoshop application/x-photoshop image/x-xcf image/xcf application/x-gimp application/gimp |
http https ftp file | display |
video/ogg video/x-ogg application/x-elphel-ogm video/x-theora video/theora video/mpeg video/mjpeg video/x-mpeg video/x-mpeg2 video/quicktime video/x-quicktime application/x-quicktimeplayer video/msvideo video/x-msvideo application/x-drm-v2 application/x-mplayer2 video/x-ms-asf video/x-ms-wm video/x-ms-wmv video/x-ms-wvx video/sgi-movie video/x-sgi-movie video/dl video/x-dl video/sgi-movie video/x-sgi-movie video/anim video/x-anim video/fli video/x-fli audio/mp3 audio/x-mp3 audio/mpeg2 audio/x-mpeg2 audio/mpeg3 audio/x-mpeg3 audio/mpeg audio/x-mpeg application/ogg application/x-ogg audio/ogg audio/x-ogg audio/x-ms-wax audio/wav audio/x-wav audio/x-pn-wav audio/x-pn-windows-acm |
http https ftp file | mplayer mencoder |
application/x-elphel-ogm video/mjpeg |
rtp | mplayer ElphelOgm |
application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.graphics-template application/vnd.oasis.opendocument.image application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.presentation-template application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.spreadsheet-template application/vnd.oasis.opendocument.text application/vnd.oasis.opendocument.text-master application/vnd.oasis.opendocument.text-template application/vnd.oasis.opendocument.text-web application/vnd.sun.xml.calc application/vnd.sun.xml.draw application/vnd.sun.xml.impress application/vnd.sun.xml.math application/vnd.sun.xml.writer application/vnd.sun.xml.draw.template application/vnd.sun.xml.calc.template application/vnd.sun.xml.impress.template application/vnd.sun.xml.writer.template application/vnd.sun.xml.writer.global text/rtf application/rtf application/x-msword application/msword application/vnd.ms-excel application/vnd.ms-powerpoint application/mspowerpoint |
http ftp file | ooffice |
Диагностика ошибок установки
Запустите скрипт mplayer.pl из командной строки. Он находится в /usr/lib/genres. Если все необходимые perl модули установлены, он должен напечатать несколько строк вида: "переменная=значение" и ожидать ввода. Если вместо этого вы получите сообщение "Can't locate Gtk2.pm in @INC" значит необходимо установить этот модуль из вашего дистрибутива или с CPAN. Другие ссылки: проект gtk2-perl, gtk2-perl на CPAN, gtk2-perl на freshmeat.
Введите параметры как они представлены в HTML теге, но только по одному на строке и в конце добавьте run=1. Например:
type=video/mjpeg url=rtp://232.168.0.9:20000/ run=1
Если MPlayer запустился, то эта часть работает, попробуйте посмотреть страницу примера входящую в состав пакета genres с помощью браузера mozilla или firefox. Если вместо окна с видео вы видите серый прямоугольник, значит возможно надо исправить URL на доступный.
Проверьте список установленных плагинов: about:plugins если GenReS отсутствует, возможно genres.so лежит не втом месте.
Плагин выдаёт много отладочной информации. Для её сбора запустите firefox из командной строки с перенаправлением вывода в файл. Mozilla надо запускать с ключом -debug:
mozilla -debug >& moz.log
Если причина не ясна, сожмите файл с помощью Gzip или bzip2 и отправьте мне на изучение.
--Sergey Khlutchin 15:49, 11 February 2006 (CST)
Создание управляющих скриптов
Для каждого тэга плагин запускает отдельный процесс-посредник. Обмен данными осуществляется через трубы (стандартные для юникса неименованные каналы). Для процесса-посредника каналы присоединены к стандартным вводу и выводу. Стандартный вывод ошибок совпадает со стандартным выводом. Файловый дескриптор №3 открыт для ввода (так же через трубу) данных из файла, на который указывает параметр тэга SRC. (Этот параметр распознаётся браузером.) Если он содержит URL с поддерживаемым протоколом и включен параметр mozillastreams, файл будет передаваться через эту трубу. Данные через стандартные ввод/вывод передаются в виде текстовых строк по одной команде в строке.
имя=значение | переменной тэга было присвоено значение
(фактически в javascript остаётся старое значение до ответа скрипта); |
. | конец блока начальных значений параметров тэга; |
PRINTEMBED | требуется напечатать страницу содержащую тэг, в ответ следует передать данные в формате postscript; |
PRINTFULL | запрос печати для объекта в полном окне, все операции должен выполнить сам скрипт (включая диалоги); |
EOF | конец файла переданного через дескриптор №3 (труба не закрывается для возможности повторной передачи по запросу). |
имя=значение | присвоить значение параметру тэга, после чего будет вызвана функция (если определена) onимя(); |
OPEN | послать с начала файл (через дескриптор №3), на который указывает параметр SRC; |
CLOSE | закрыть трубу со стороны плагина (скрипт больше не сможет пользоваться дескриптором №3); |
AUTOCLOSE | автоматически закрывать трубу при окончании файла данных; |
DESTROY | закрыть поток файла данных браузера; |
{javascript} | выполнить скрипт в контексте объекта тэга. |