Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: mplayer.sh: solution of DVD chapter selection with mp3/mplayerplugin



Hi,

just to ask if you treid it, do you know that
i should be possible to switch chapters using a lirc
remote and creating a lircrc file for mplayer ?
(or even using the slave mode ?)
in the worst case mplayer would need to generate a
playlist for that dvd before playing, but since i dont
have a buyed dvd here now i cant test, but only
ask if you tried it and what your experiences where.

Regards Onno

Martin Fischer schrieb:

Hi,

I'm using the mp3/mplayer plugin together with Michael's & Juri's
mplayer.sh script.

Current mplayer.sh only supports playing dvd chapter 1. Due some of
my DVDs have their main track in chapter 2 (or 12 like Star Trak Nemesis)
I wanted to select the DVD chapters inside VDR.
Here's my little solution, it would like to here some comments about it:

I changed the mplayer.sh so it doesn't play a DVD when the dummy
DVD file is selected, but calls a little perl script I wrote that examines the dvd
and created dummy files called DVD-01, DVD-02... for every DVD track it
can find.

So if you now select the DVD dummy in VDR no track will be played
at all and you will be back in VDR again. But if you check the mplayer directory in VDR again you will see the files DVD-01... available for every track on the DVD. Select one of those files and the corresponding track will be played.

Changes below, nice weekend @all

Martin Fischer





Here's the change of mplayer.sh (line #436 in my version):
( You will have to correct the CMDLINE="usr/local/bin..." to
the place this script is located, script follows below )
-------------------------------------------
...
# read config file and initialize the variables
initialize
if test "$FILE" == "$DVDFiles/DVD" -a -n "$DVDFiles" -a -n "$DVD" ; then
# Scan DVD
CMDLINE="/usr/local/bin/scandvd.pl"
FILE=""
elif test "${FILE:0:$[${#FILE}-3]}" == "$DVDFiles/DVD" -a -n "$DVDFiles" -a -n "$DVD" ; then
CHAPTER="${FILE:$[${#FILE}-2]:2}"
CMDLINE="$MPLAYER -vo $VO $AOUT -dvd $CHAPTER -alang $DVDLANG $DVDOPTIONS $FDSTR $CACHESTR $REMOTE $USERDEF -dvd-device"
FILE="$DVD"
elif test "$FILE" == "$DVDFiles/VCD" -a -n "$DVDFiles" -a -n "$DVD" ; then
CMDLINE="$MPLAYER -vo $VO $AOUT -vcd 1 $VCDOPTIONS $FDSTR $CACHESTR $REMOTE $USERDEF -cdrom-device"
FILE="$DVD"
...


Here's my little perl script scandvd.pl
-------------------------------------------
#!/usr/bin/perl

use strict;
use warnings;


use constant VIDEO_DIRECTORY => '/home/freigabe/Videos';
use constant MOUNT_DIRECTORY => '/media/dvd';


# Try to mount DVD if not already
if ( ! -d MOUNT_DIRECTORY() ."/VIDEO_TS" ) {

# Try to mount DVD
system( "/bin/mount ". MOUNT_DIRECTORY() );

# On Success
if ( -d MOUNT_DIRECTORY ."/VIDEO_TS" ) {

# Ok, it is mounted now: get chapters
my @newChapters = glob( MOUNT_DIRECTORY ."/VIDEO_TS/VTS_??_0.IFO" );

# What old chapter files does exist?
my @oldChapters = glob( VIDEO_DIRECTORY ."/DVD*" );

# If different chapter count
if ( scalar( @newChapters ) != scalar( @oldChapters ) ) {

# Remove all old chapter files
foreach my $chapterFile ( @oldChapters ) {
unlink( $chapterFile );
}

# Create the DVD Main-File too
if ( open( DVDFILE, "> ". VIDEO_DIRECTORY ."/DVD" ) ) {
print DVDFILE "DUMMY FILE - DVD MAIN\n";
close( DVDFILE );
}

# Create required new chapter files and main file
foreach my $chapterFile ( @newChapters ) {

# Get title number if any
my $title = substr( $chapterFile, -8, 2 );
# Create new DVD file
if ( open( DVDFILE, "> ". VIDEO_DIRECTORY ."/DVD-$title" ) ) {
print DVDFILE "DUMMY FILE - DVD CHAPTER $title\n";
close( DVDFILE );
}

} # foreach
} # different chapter count

# unmount DVD
system( "/bin/umount ". MOUNT_DIRECTORY );

} # mounted successfully
} # DVD wasn't mounted

exit 0;






--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index