The recoder-tools target the same general goal as the vdr-mplayercluster-plugin from Sascha Volkenandt but with a slightly different way of doing: It does not a specialized plugin derived from the mplayer-plugin with the now obvious disadvantages of continuously further development (e.g. integrating new features from mplayer-plugin to mplayercluster-plugin or bugfixing for newer vdr-versions). Instead it replaces the well-known "mplayer.sh" script with its own binary recoderc. This client has the task to connect to a recoderd-server and tell him the filename to be played. The server now starts a mplayer-process which does the reencoding to MPEG (using the real mplayer.sh script). The transcoded MPEG stream as well as all output from mplayer is forwarded to the client. Also the client forwards all input (e.g. SLAVE-commands) to the server, which sends the to the server's mplayer input. All together, recoderc acts like a normal mplayer.sh script (input, output, video-data) but the CPU critical part is done on another host.
Currently the code is still in a early alpha state and being hardly developed further, but a first version with the basic desired functionalty is available:
I had the time to fix some bugs and improve the recoder-tools a bit more. See Changlog for more info.
Again I had some time to fix a long pending deadlock on invocation. For detailed changes see ChangeLog.
So far, there is no real documentation as I do not have time to write much. I just translate some hints I gave Thomas Glomann, when he was the first one interested in my recoder-tools:
configure; make; make install
.--with-server-ip=<ipaddress>
The IP of the
--with-server-port=<portnum>
If you do not like the default port for the recoder-server (40404), you can set another default here. Most users do not need this!
--with-local-mplayer-frames=<#frames>
This is a try to fix the bug apearing as a deadlock on
startup. If you happen to have these deadlocks, increase the
value of frames here. The default value is
5
. Please tell me about your success or
failure with different values and add a note about the used
hardware setup!
make install
installs the programs
recoderd (the "server") and recoderc. The
server program is needed on your transcoding server and the
client on your vdr host. If you use different linux
distributions (to be exaclty: different versions of
libstdc++) on these hosts, you should compile and install both
programs on both hosts seperately.$PATH
, but only the vdr machine needs a mplayer with
DVB support. The mplayer installed on your vdr machine does not
need any additional support (e.g. codecs). Its only purpose is to
play the transcoded MPEG stream, generated from your
transtranscoding server, on the DVB device. The mplayer on your
transcoding server obviously should support as much as possible if
you want to be able to play as much media codecs as possible!VO
config variable of
Juri's mplayer.sh to VO="mpegpes:grab.mpg"
./video/mplayer/film.avi
is
accessible on the transcoding server via the same path.Example:
/video
via NFS, which also
contains the subdir /video/mplayer
containing
some media files for the mplayer-plugin./share
is
configured to mount vdr:/video
as
/share/video
.
/video
pointing to /share/video
.while true; do recoderd; done