Jump to content

enigma2 Aufnahmen abspielen


TwT

Empfohlene Beiträge

Hallo,

 

mittlerweile habe ich gelernt, daß man enigma2 .ts Dateien nur mit einer XML abspielen kann.

Diese habe ich mir zum testen selbst geschrieben/verändert.

Hat auch funktioniert.

 

Auch gibt es wohl ein Plugin CooliTSclimax mit dem sich die XML aus der TS erzeugen läßt.

Soweit ich es vestanden habe, zieht CooliTSclimax seine Infos direkt aus der TS

 

EPG,PIDs und andere Infos stehen aber auch in der .eit und .meta Datei.

Gibts es ein Plugin, das mit Hilfe dieser Dateien eine XML erzeugt?

 

Irgendwo habe ich gelesen, das die Coolstream Aufnahmen auch ohne plugins

umwandeln/abspielen kann.

Stimmt das?

(Hat bei mir nicht funktioniert. Wiedergabe hat immer nach ca. 20sec. abgebrochen)

 

TwT

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 month later...

Hallo,

 

die Sache mit cooliTSclimax funktioniert mittlerweile.

 

Im dbox2world forum habe ich hier ein Script gefunden,

mit dem man die Enigma Dateien vom Tuxcomander aus patchen kann:

http://www.dbox2worl...les/#post120232

 

Auf dieser Idee aufbauend hier 2 Scripte von mir, mit denen man

danach die Infos aus der .meta und der .eit Datei in die xml übertragen

kann.

 

meta:

#!/bin/sh
# Erleichtert Fehlersuche
#set -x
#ALLDEBUG="--save-headers -S"
# /var/tuxbox/config/tuxcom/meta
# Fuer saubere Meldung bei Fehlern
errorexit () {
echo "Fehler, stop: $1" >&2
exit 1
}

# parameter 1: path to file
# parameter 2: filename
file=`echo "$1$2"`
file2=$(echo $file | sed 's/.ts.meta//g')
echo $file
epgtitle=`sed -n '2p' "$file"`
echo $epgtitle
sed -i "s/<epgtitle>.*</<epgtitle>$epgtitle</g" "$file2.xml"
info1=`sed -n '3p' "$file"`
sed -i "s/<info1>.*</<info1>$info1</g" "$file2.xml"
exit 0

 

eit

#!/bin/sh
# Erleichtert Fehlersuche
#set -x
#ALLDEBUG="--save-headers -S"
# /var/tuxbox/config/tuxcom/eit

# Fuer saubere Meldung bei Fehlern
errorexit () {
echo "Fehler, stop: $1" >&2
exit 1
}

Short_Event_Descriptor() {
echo Short_Event_Descriptor
pos=$1
descriptor_length=`dd ibs=1 skip=$((pos+1)) obs=1 count=1 if="$file" `
descriptor_length=$( printf "%d" "'${descriptor_length}" )
echo $descriptor_length
if [ $descriptor_length -eq "0" ];
then
 descriptor_length=10
	 fi
event_name_length=`dd ibs=1 skip=$((pos+5)) obs=1 count=1 if="$file"`
event_name_length=$( printf "%d" "'${event_name_length}" )
echo $event_name_length
event_name_char=`dd ibs=1 skip=$((pos+7)) obs=1 count=$((event_name_length-1)) if="$file"`
echo $event_name_char
text_length=`dd ibs=1 skip=$((event_name_length+pos+6)) obs=1 count=1 if="$file" `
text_length=$( printf "%d" "'${text_length}" )
echo $text_length

text_char=`dd ibs=1 skip=$((event_name_length+pos+8)) obs=1 count=$((text_length-1)) if="$file" `
info2=$info2$text_char
}
Extended_Event_Descriptor ()
{
pos=$1

descriptor_length=`dd ibs=1 skip=$((pos+1)) obs=1 count=1 if="$file"`
descriptor_length=$(printf '%d' "'$descriptor_length")
echo $descriptor_length

item_char=`dd ibs=1 skip=$((pos+8)) obs=1 count=$((descriptor_length-6)) if="$file" `
item_char=$(echo $item_char | sed 's// /g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;')
info2=$info2$item_char
}
Component_Descriptor ()
{
pos=$1


descriptor_length=`dd ibs=1 skip=$((pos+1)) obs=1 count=1 if="$file"`
descriptor_length=$(printf '%d' "'$descriptor_length")
if [ $descriptor_length -eq "0" ];
then
 descriptor_length=10
	 fi
stream_content=`dd ibs=1 skip=$((pos+2)) obs=1 count=1 if="$file"`
stream_content=$(printf '%d' "'$stream_content")
stream_content=$((stream_content&15))
component_type=`dd ibs=1 skip=$((pos+3)) obs=1 count=1 if="$file"`
component_type=$(printf '%d' "'$component_type")

component_tag=`dd ibs=1 skip=$((pos+4)) obs=1 count=1 if="$file"`
component_tag=$(printf '%d' "'$component_tag")
text_char=`dd ibs=1 skip=$((pos+9)) obs=1 count=$((descriptor_length-7)) if="$file" `
echo Component_Descriptor
echo Length $descriptor_length

echo Compenent_tag: $component_tag
printf "s_c : %d (0x%X)\n" $stream_content $stream_content
echo c_t: $component_type
echo "$text_char"
if [ $stream_content -eq 2 ];
then
eval "audio$namez=\$"text_char""

namez=$((namez+1))
fi
}
Unknown_Descriptor ()
{
pos=$1
descriptor_length=`dd ibs=1 skip=$((posh+1)) obs=1 count=1 if="$file"`
descriptor_length=$(printf '%d' "'$descriptor_length")
echo Unknown
echo $descriptor_length
}
# parameter 1: path to file
# parameter 2: filename
File=`echo "$1$2"`
file2=$(echo $File | sed 's/.eit//g')
file="$File"
echo $file
if [ -f "$file" ]; then
echo "ist da"
else
echo "ist nicht da"
exit
fi
info2=""
posh=12
namez=0
#filesize=$( stat -c %s "$file")
filesize=$(wc -c <"$file")
echo $filesize
while [ $posh -lt $filesize ]
do
descriptor=`dd ibs=1 skip=$posh obs=1 count=1 if="$file"`
echo $descriptor
if [ "$descriptor" = "N" ]
then
Extended_Event_Descriptor $posh
fi
if [ "$descriptor" = "M" ]
then
Unknown_Descriptor $posh
fi
if [ "$descriptor" = "P" ]
then
Component_Descriptor $posh
fi
posh=$((descriptor_length+posh+2))
done
echo $info2
echo "$file2.xml"
sed -i "s|<info2>.*<|<info2>$info2<|g" "$file2.xml"
i=0
while [ $i -lt $namez ]
do
eval echo "The part is \$audio$i"

eval text_char="\$audio$i"

echo "$text_char"
sed -i "$((i+14)),/ name=\".*\"/s/ name=\".*\"/ n____ame=\"$text_char\"/" "$file2.xml"
i=`expr $i + 1`
done
sed -i "s/n____ame/name/g" "$file2.xml"
exit 0

 

Beide scripte "eit" und "meta" ausführbar machen und nach /var/tuxbox/config/tuxcom/ kopieren.

 

Bei mir funktioniert es, trotzdem testen erstmal auf eigene Gefahr.

Bin leider kein gelernter Programmierer, also falls jemand Vorschläge hat,

wie man etwas besser machen kann, diese bitte ebenfalls posten.

 

Ein Dank noch an folgende Seite, auf der ich die meisten Informationen über die eit und

die descriptoren gefunden habe.

http://www.fr-an.de/

 

Gruß

TwT

bearbeitet von TwT
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 month later...

Sag mal ich finde es super das du das so hinbekommen hast.

Doch wie führst du die beiden scripte aus.

Ich jetzt mal zu testzwecken 3 Aufnahmen in einen unterordner /hdd/record/test geschoben.

Irgentwie muss ich den scripten doch sagen, wo sie was machen müssen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

 

die Scripte als eit und meta (um)benennen,ausführbar machen (chmod 755)

und nach /var/tuxbox/config/tuxcom/ kopieren.

 

Im Tuxcomander wird dann nach Markieren bzw. Anwählen der Datei (eit oder meta) und Drücken auf die OK Taste das jeweilige Script ausgeführt.

 

Voraussetzung ist, daß mit cooliTSclimax schon die xml für die jeweilige TS erzeugt wurde.

 

Gruß

TwT

bearbeitet von TwT
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...