GenReS

From ElphelWiki
Revision as of 22:18, 1 April 2006 by Khlut (talk | contribs)
Jump to: navigation, search

in English | [[{{{de}}}|deutsch]] | [[{{{fr}}}|français]] | по-русски | автоперевод | 中文版 | 机械翻译


Project Pages

Usage in Javascript

Static tag parameters

lowres
decimation for accelerated DCT (0-3);
width
width of the object window;
loop
number of iterations of the playback (0 or nothing is infinite);
fps
frame frequency;
frameskip 
skip n frames after one saved;

Dynamic variables (can also be used as the parameters of tags)

href
url of the file or stream;
src
as yet simply another name for href.
pause=1 or play=0
to pause player;
pause=0 or play=1
to continue playback;
filepos=sec 
go to time or percent specifed, maybe not works if mplayer is not support seeking for the current file;
framestep=anything 
show next frame and pause (for step-by-step view);
run=1
to start player again if it was terminated (by error or end of file);
run=0
to terminate player;
save
to run mencoder or ElphelOgm as recorder instead of mplayer;
save=ask
to always ask the file name for recording;
save=auto
not to ask if user sets it in dialog

Status variables

This the output from mplayer or mencoder. Now strings simply are split into two parts on the first of the symbols '=' or ':'. The left part becomes a name of the variable (gaps and nonlatin letters are removed) and the right part is a value.

frame
the message from mplayer/mencoder about the last frame;
error
last error message;
FATAL
fatal error message from mplayer;

Other variables are possible but they are not used as yet.

run
special variable, the state of player process: 0 - not running, 1 - running;
pause, play
it is analogous - the pause state.

Callback functions

On the arrival of data from a player it is transferred to the object variables and it becomes accessible from javascript. In this case if it is assigned the function with the corresponding name "on<variable_name>" will be called.

onrun
will be called on starting and stopping of playing or recording processes;
onerror
on error message;
onframe
on each frame playing.
onmousedown and other standard callbacks
are given already by the browser and do not need extra code inside the plugin.

Back-end programs

Currently used:

  • mplayer (compiled with live555)
  • mencoder from mplayer package
  • ElphelOgm - for receiving pure multicast or unicast rtp with mjpeg video.

For ElphelOgm to be used, the mime-type must be application/x-elphel-ogm or begin with video/m and the URL must be specifed as: rtp://ip:port/ , where:

ip -
the stream multicast ip
port -
the stream multicast port

For a unicast the destination i.e. client ip:port must be specifed and a stream server must be programmed to continuously send the stream to this address and port. Dynamic changing of the URL is not yet supported for RTP. Instead use the sequence: obj.run=0; obj.src=...; obj.run=1;

Trouble shooting

Run the script mplayer.pl from a command line. It is located in /usr/lib/genres. If all necessary perl modules are installed, it must print several strings in the form: "variable=value" and wait input. If you see message "Can't locate Gtk2.pm in @INC" this mean that need to install this module from your distro or from CPAN. Other links: gtk2-perl home page, gtk2-perl on CPAN, gtk2-perl on freshmeat.

Enter parameters as they presented in the html tag, but by one in line and add run=1 at the end. For example:

type=video/mjpeg
url=rtp://232.168.0.9:20000/
run=1

If MPlayer is running then this part works, try to see example html page in the browser (mozilla or firefox). If you don't see video in the browser, but instead see a gray rectangle, maybe the page has wrong url.

See the list of installed plugins with url: about:plugins and if there is no GenReS, maybe genres.so is in a wrong place.

The plugin produce debug output. Start mozilla or firefox with redirection to a file:

mozilla -debug >& moz.log

For firefox -debug is not need. Gzip and send this file to me to research.

--Sergey Khlutchin 01:55, 8 February 2006 (CST)