Difference between revisions of "GenReS(плагин)"
(→Переменные статуса) |
(→Динамически изменяемые переменные (можно указывать и как параметры тегов)) |
||
Line 11: | Line 11: | ||
== Динамически изменяемые переменные (можно указывать и как параметры тегов) == | == Динамически изменяемые переменные (можно указывать и как параметры тегов) == | ||
− | ;href : url файла или потока | + | ;href : url файла или потока; |
− | ;src : пока просто другое имя для href | + | ;src : пока просто другое имя для href; |
− | ;pause=1 или play=0 : приостановить проигрывание | + | ;pause=1 или play=0 : приостановить проигрывание; |
− | ;pause=0 или play=1 : продолжить проигрывание | + | ;pause=0 или play=1 : продолжить проигрывание; |
− | ;filepos=sec : переместиться на указанное время от начала в секундах | + | ;filepos=sec : переместиться на указанное время от начала в секундах, может не работать, если mplayer по этому файлу не перемещается; |
− | ;framestep=что-нибудь : показать следующий кадр и остановиться (пошаговый просмотр) | + | ;framestep=что-нибудь : показать следующий кадр и остановиться (пошаговый просмотр); |
− | ;run=1 : запустить плеер если он прекратил работу (по ошибке или концу файла) | + | ;run=1 : запустить плеер если он прекратил работу (по ошибке или концу файла); |
− | ;run=0 : завершить плеер | + | ;run=0 : завершить плеер; |
− | ;save : запустить mencoder вместо mplayer | + | ;save : запустить mencoder вместо mplayer; |
− | :;save=ask : всегда спрашивать имя файла для записи | + | :;save=ask : всегда спрашивать имя файла для записи; |
− | :;save=auto : не спрашивать если пользователь укажет в диалоге | + | :;save=auto : не спрашивать если пользователь укажет в диалоге. |
== Переменные статуса == | == Переменные статуса == |
Revision as of 01:11, 26 February 2006
in English | autotranslate | по-русски | 中文版
Contents
Cтатические параметры тегов
- lowres
- параметр прореживания для ускоренного DCT [0-3], 0-полное разрешение, 3-1/8
- width
- ширина окна
- loop
- повтор проигрывания (0 или не указано - бесконечно)
- fps
- частота кадров
- frameskip
- пропуск n кадров из каждых n+1
Динамически изменяемые переменные (можно указывать и как параметры тегов)
- href
- url файла или потока;
- src
- пока просто другое имя для href;
- pause=1 или play=0
- приостановить проигрывание;
- pause=0 или play=1
- продолжить проигрывание;
- filepos=sec
- переместиться на указанное время от начала в секундах, может не работать, если mplayer по этому файлу не перемещается;
- framestep=что-нибудь
- показать следующий кадр и остановиться (пошаговый просмотр);
- run=1
- запустить плеер если он прекратил работу (по ошибке или концу файла);
- run=0
- завершить плеер;
- save
- запустить mencoder вместо mplayer;
- save=ask
- всегда спрашивать имя файла для записи;
- save=auto
- не спрашивать если пользователь укажет в диалоге.
Переменные статуса
Это то что выдаёт mplayer или mencoder, в настоящий момент стороки просто разделяются на две части по первому из символов '=' или ':'. То что слева - имя переменной (пробелы и нелатинские буквы удаляются), справа - значение.
- frame
- сообщение плеера/рекордера о последнем кадре
- error
- последнее сообщение об ошибке
Возможны другие но они пока не используются.
- 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.
Чтобы задействовать 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;
Диагностика ошибок установки
Запустите скрипт 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)