You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Sunday, October 12th 2003, 7:28pm

vdr-requant.sh - verkleinern von VDR-Dateien

Hi,

ich habe mal, mehr aus allgemeinem Interesse ein kleines Script gebaut, welches mittels requant ohne grossen Rechenaufwand VDR-Aufnahmen verkleinert. Ich habe so bei mir ohne grossen Zeitaufwand mal eben noch ein paar Stunden Platz gewonnen ;)

Voraussetzungen:
- requant
- vdrsync.pl
- tcmplex
- genidx

Vorgehen:
- Script in leeres Verzeichnis legen
- Ausfuehren mit Faktor (z.B. 1.4) und Videoverzeichnis als Parameter
- Freuen ueber ein neues Verzeichnis result.*, in dem der kleingerechnete Film samt
zugehoeriger VDR-Files liegt
- Dieses Verzeichnis mit passender Verzeichnisstruktur in den VDR-Tree legen, ausprobieren und
alten (grossen) Film via OSD loeschen.

Bugs:
- Wenn der resultierende, verkleinerte Film groesser als 2 GB ist, kann VDR nichts mehr damit
anfangen
- Bisher nur oberflaechlich getestet

Tips:
- Die qualitativ besten Ergebnisse erhaelt man bei Faktoren bis zu 1.5

Vielleicht kann ja jemand was damit anfangen. Grundsaetzlich waere es auch kein Thema das Script so anzupassen, dass man es ueber die reccmds.conf aufrufen kann.

EDIT: neue Version gaaanz unten im Thread (hier: http://www.vdr-portal.de/board/thread.ph…71895#post71895)

cu
gonz

This post has been edited 2 times, last edit by "gonz" (Jan 3rd 2004, 12:19am)


2

Sunday, October 12th 2003, 8:48pm

RE: vdr-requant.sh - verkleinern von VDR-Dateien

Hi,

ich lerne gerade dass das binary zum index.vdr erzeugen bei vielen genindex und nicht genidx heisst.
Ggf. einfach suchen und ersetzen im Script...

cu
gonz

anonymous

Professional

  • "anonymous" has been banned

Posts: 1,561

Occupation: ITSE

  • Send private message

3

Monday, October 13th 2003, 4:01pm

Werde dann auch mal Abends "pressen" nen haufen Serien, anbei die Änderung für die reccmds.

MFG Ronny

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
#
# Version: 0.0.10 pre-alpha
#
##############################################################
#
# reccmds.conf entrys
# ....
# Compress Recordings 1.3 : /path_to_this/vdr-requant.sh "1.3"
# Compress Recordings 1.4 : /path_to_this/vdr-requant.sh "1.4"
# Compress Recordings 1.5 : /path_to_this/vdr-requant.sh "1.5"
# ....
##############################################################

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

MYPATH=/video/Requant

DIR=`echo $@ | cut -f 2 -d ' '`
LABEL=$(echo "$DIR" | cut -f `echo "$DIR" | sed 's/\// /g' | wc -w` -d '/')
SUBLABEL=`echo "$DIR" | sed -e '1,$s/[^\/]*\///g'`


for prog in requant vdrsync.pl tcmplex genindex at
do
      type $i >/dev/null 2>&1
      status=$?
      if test $status -ne 0; then
            echo "you need $prog in your path"
            exit 128
      fi
done

TMP=`mktemp -d $MYPATH/requant.XXXXXX`

      (
            echo "cd $TMP"
            echo "vdrsync.pl $DIR"

            echo "requant `echo $@ | cut -f 1 -d ' '` < \`ls *mpv\` > 001.mpv"
            echo "tcmplex -i 001.mpv -p \`ls *mpa | head -n1\` -o 001.vdr -m d"
            echo "genindex"
	
            echo "rm *mpv *mpa"

            echo "if test -f $DIR/summary.vdr; then"
            echo "    cp $DIR/summary.vdr ."
            echo "fi"
	
            TEMP=`echo $TMP | sed -e '1,$s/[^\/]*\///g'`
	
            echo "mkdir -p $MYPATH/$LABEL/$SUBLABEL"
            echo "mv $TMP/* $MYPATH/$LABEL/$SUBLABEL"
            echo "cd $TMP"
            echo "rm -rf $TMP"

      ) | at now

4

Monday, October 13th 2003, 4:29pm

Hi,

cool - wollte heute Nacht sowieso ne Version mit reccmds.conf bauen, da werd ich Deine
Aenderungen einfliessen lassen. Die neue Version wird das Ergebnis im selben Verzeichnis der Aufnahme speichern, das Datum allerdings auf 10 Jahre in der Zukunft stellen :)

(ausserdem sind noch paar bugfixes drin, die Pruefung auf Vorhandensein der Binaries funktioniert z.B. derzeit nicht wirklich) :)

Thanks!

cu
gonz

5

Monday, October 13th 2003, 5:11pm

Quoted



(ausserdem sind noch paar bugfixes drin, die Pruefung auf Vorhandensein der Binaries funktioniert z.B. derzeit nicht wirklich) :)



hi,

ich mache dass in einem script von mir (queuehandler.sh von vdrrip) so:

for exe in "$mencoder" "$mplayer" "$nice" "$pgrep"
do
if [ ! -x "$exe" ]
then
echo
echo "error: $exe doesn't exist or isn't a executable file"
echo " check the value for $exe= in $scriptname in the"
echo " section # initial definitions"
echo
exit 1
fi
done

... sollte doch leicht zu uebernehmen sein.


greetz

herbsl

6

Tuesday, October 14th 2003, 12:57am

Hi,

wie versprochen anbei die neue Version (0.0.16a).

Was hat sich geaendert:

- Benoetigt keinen eigenen Pfad mehr sondern kann z.B. aus /usr/local/bin aufgerufen werden
- genidx wurde ordnungsgemaess zu genindex umbenannt
- Etwas besser dokumentiert
- Fix fuer den Teil der das Vorhandensein der Binaries ueberpruefen soll
- Alle Unterprozesse werden nun sauber geniced
- Einfuehrung eines Wrappers fuer Hintergrundausfuehrung via at
- Unterstuetzung fuer reccmds.conf mit Ausgabe auf das OSD bei Ende
- Benutzt nun das Video-Verzeichnis auch als Zielverzeichnis, wobei
das Datum um zehn Jahre hochgeschraubt wird
- Es werden bei der Ausfuehrung via Commandline nun Part 1-4 angezeigt
- In die summary.vdr wird die Notiz hinzugefuegt, dass das Video bereits durch vdr-requant lief
- README und HISTORY FILE

Ueber Rueckmeldungen ob und wie es funktioniert und welche Verbesserungsvorschlaege Ihr habt wuerde ich mich latuernich freuen! :)

Viel Spass!

EDIT: aktuellere Version unten

gonz

This post has been edited 1 times, last edit by "gonz" (Dec 26th 2003, 3:48am)


Django

Master

Posts: 1,961

Location: Pliening

Occupation: BOfH

  • Send private message

7

Saturday, November 15th 2003, 12:12am

Griasde Grouwa!

Quoted

Original von gonz
Ueber Rueckmeldungen ob und wie es funktioniert und welche Verbesserungsvorschlaege Ihr habt wuerde ich mich latuernich freuen! :)

Na, dem Manne kann geholfen werden. ;)

Quoted

Bugs:
- Wenn der resultierende, verkleinerte Film groesser als 2 GB ist, kann VDR nichts mehr damit anfangen

Hmm, das stimmt so nicht ganz. ;D Musst nur eine Kleinigkeit anderst machen:

Source code

1
2
3
4
5
6
7
8
echo
echo part 3/4 - tcmplex
echo
nice -n 15 tcmplex -i 001.mpv -p $AUDIO -o 001.vdr -m d
echo
echo part 4/4 - genindex and cleanup
echo
nice -n 15 genindex

Nun bevor Du im Teil 4 von 4 "anwirfst" musst Du "nur" folgendes machen:

Prüfen ob die 001.vdr Datei > 2GB ist
wenn NEIN weitermachen wie biesher, also genindex starten
wenn JA 001.vdr Datei mittels split -b 2000000000 001.vdr in mehrere Häppchen aufteilen , anschließend die erstellten Teile "richtig" durchnnummerieren und dann erst genindex starten.

Soviel zur praktischen Theorie. :]

Kannst es ja mal bei Bedarf in die einfache Praxis, sprich in Dein script, umsetzen, wenn's das brauchst ...

Pfiade,
Django

:evil: Nichts ist wahr, alles ist erlaubt! :evil:

VDR-Server: ASUS A7V8X, Duron 1.300, 256 MB, 3x 120 GB Maxtor HD, PIONEER DVR-106, Design Tower AIR Black, 40x4 LCD,
1x TT-DVB-S V1.6, 3x DVB-S Nova, URC-7562, CentOS 5.5, VDR: 1.6.0

TecVDR: AOPEN MK73LE-N, Duron 1.300, 256 MB, 1x 120 GB Samsung HD, Pioneer DVR-A04, Gehäusesonderbau, 1x TT-DVB-S V1.6 4MB, 1x DVB-S Nova, 1x AV-Board, SuSE 9.0, VDR: 1.3.11

8

Sunday, November 16th 2003, 7:50pm

Hi,

@Django: danke fuer das Feedback! Habs ein bischen anders gemacht, naemlich wenn groesser 2 gig in 4 Teile gesplittet, aber 8gig sollten ja fuer den Normalfall auch reichen. :)

Anbei also die neue Version (0.0.20a).

Aenderungen:
- Bessere Doku
- OSD-Messages bei Start/Ende mit Faktor
- Resultat wird falls noetig gesplittet

EDIT: neuere Version unten

cu
gonz

This post has been edited 1 times, last edit by "gonz" (Dec 26th 2003, 3:49am)


anonymous

Professional

  • "anonymous" has been banned

Posts: 1,561

Occupation: ITSE

  • Send private message

9

Sunday, November 16th 2003, 8:20pm

Hallo

Schau mal hier:

http://www.vdrportal.de/board/thread.php…e&hilightuser=0

Villeicht könnte man sich "requant" von http://www.metakine.com/files/M2VRequantizer.tgz dadurch schenken?

Meine Damit in den Voraussetzungen, steht ja eh schon tcmplex von (transcode).

Kenne mich mit "Ripping" auch nicht so aus, aber warum mit mehr wenn es mit wenieger Realisierbar wäre?

Dann wegen der einen Zeile:

Source code

1
EXPECTEDSIZE=`echo $SIZE / $FACTOR | bc`


Würde ich nicht auf bc zurück greifen, es giebt ein paar Light Distries die das nicht inside haben, Peanut fählt mir gerade ein, bin mir aber nicht sicher.

Jedenfalls auch schon das Installations Script deshalb geändert, da war auch erst alles in bc.

MFG Ronny

linuxdep

Professional

Posts: 1,047

Location: Magdeburg

  • Send private message

10

Sunday, November 16th 2003, 9:19pm

Hi, geile Sache, hoffe ich zumindest, sitze gerade am Weppad und lese, muß ich mir auf alle Fälle merken.

Aber mal ne Frage, wie schauts mit der qualli aus? Und da ich jetzt mal an das Thema dvd erstellung ran wollte, kann man das nicht da noch mit einbauen, das die auswahl auf eine dvd geht? Nur mal so, bei einem Glas Wein fällt mir immer sowas ein...
Gruß Martin (linuxdep)

VDR-Systeme


Gen2VDR 2.0 läuft auf:
Mediaportal PIII 1100MHz, Samsung 160GB HDD, 2mal Siemens DVB-s 1.3 + 1 Nova-CI
graphLCD 128x64blue im MediaPortal mitlerweile defekt :weinen

Projekt:HD-VDR im Desktop Gehäuse... mit yaVDR 0.5.0a nVidia8300 onMoBo

zumVerkauf:

Hewllet Gehäuse roh mit Netzteil (Flüsterleise)
DVB-S2 FF 6400 testweise genutzt OVP

11

Sunday, November 16th 2003, 9:37pm

Hi,

@anonymous: Danke fuers Feedback. Die neue Version (0.0.21a, anbei) versucht um das bc drumrumzuwerkeln. tcrequant hab ich mal auf die dolist gesetzt.

@linuxdep: Qualitaet ist bei 1.2 / 1.3 in meinen Augen durchaus brauchbar. Das mit der DVD-Groesse im Zusammenhang mit requant ist soweit ich weiss bereits bei vdrconvert implementiert.

@all: Wie sich herausstellte kennt split den parameter "-d" erst in juengeren Versionen, die neue Version benoetigt diesen Parameter nicht mehr, ist also "kompatibler". Ausserdem wird das split jetzt auch geniced.

EDIT: neuere Version unten

cu
gonz

This post has been edited 3 times, last edit by "gonz" (Dec 26th 2003, 3:50am)


anonymous

Professional

  • "anonymous" has been banned

Posts: 1,561

Occupation: ITSE

  • Send private message

12

Monday, November 17th 2003, 10:13pm

Hallo

Mal eine Frage, bin letztens nicht dazu gekommen, habe vor einen ganzen Packen zu "pressen".

Es handelt sich um ca 160 Aufnahmen.

Damits schneller geht:

find /video/Req -type d -maxdepth 2 -mindepth 2 -exec vdr-requant.sh-wrapper 1.4 '{}' ';'

Schickt aber meinen PC ins "Nirvana", ist zuviel für den CPU (logisch x 160).

Deshalb könntest Du eine Prozess Kontrolle einbauen?

Oder besser gesagt ein Limit (set max/pro session), sind die durch gehts weiter. (at hat ja auch einen "Lastabhängigen" Modus), da könnte man sich Nice vielleicht spaaren und alles in einem batch ausführen lassen?

Weiß nicht so genau, aber 160 x in den Recordings was makieren ist zu happig.

Falls Dir die Ideen ausgehen sollten, "press after record (vdr -r script)" wäre auch nicht übel.

ToDO: das wäre mir wichtig:

# - check if there is enough space in the output dir

Könnte man vielleicht den Output komplett neu erstellen (label/name etc) lassen, nicht im selben Dir (so müßte man zig mal was löschen).

Wie gesagt nur Anregungen, braucht ja nicht "fest" eingebaut werden, villeicht als Option.

MFG Ronny

13

Tuesday, November 18th 2003, 8:48am

Hallo,

Quoted

Original von Django
wenn JA 001.vdr Datei mittels split -b 2000000000 001.vdr in mehrere Häppchen aufteilen , anschließend die erstellten Teile "richtig" durchnnummerieren und dann erst genindex starten.


Seid ihr ganz sicher das das mit Split geht ?

Ich hatte das mal für mein AutoCutter ausprobiet und die aufnahme ist an der stelle "kaputt" - ich hatte das mit eine kleine aufnahme getestet und kleinere "stücke" - das sah gar nicht gut aus :(

Ich hatte dann in der ML gefragt hier die antwort von Klaus :

Quoted


>> How can I split VDR recordings in a Script ?

You need to split the files at GOP boundaries.
You can either use the index.vdr to get that information,
or parse the files as VDR does (see VDR/remux.c).


Ihr macht damit eure aufnahmem kaputt an der "Schnitt-stelle" !!

Gruß
Viking
04.07.2007 Sharemarks 0.1.4pre6
AutoCutter 0.3.1
LC17

Bin dabei auf LinuxMCE umzustellen.
System : Viking LinuxMCE

14

Tuesday, November 18th 2003, 10:06am

Hallo zusammen,

Quoted

Original von viking


Ihr macht damit eure aufnahmem kaputt an der "Schnitt-stelle" !!

Gruß
Viking



Jep, das würde ich auch vermuten....

Cheers

Peter / doc
Mitstreiter für VDRsync gesucht!
Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

15

Tuesday, November 18th 2003, 10:46am

Wie ist nach dem Requantizieren die Qualität der Aufnahmen? Merkt man am Fernseher überhaupt was?
CU
Tom

Django

Master

Posts: 1,961

Location: Pliening

Occupation: BOfH

  • Send private message

16

Tuesday, November 18th 2003, 10:18pm

Habedieehre,

Quoted

Original von viking
Seid ihr ganz sicher das das mit Split geht ?

Na sagen es wir mal so, ich hab' das bisher mit allen VHS-Copies gemacht, die mir jemand konvertierte. Das Zeug läuft ohne erkennabre Probleme durch.

Dannn hab' ich mir noch eine 5.6GB Aufnahem mal vorgenommen, bei der ich auch nix Gegenteiliges feststellen konnte.

Quoted

Ihr macht damit eure aufnahmem kaputt an der "Schnitt-stelle" !!


Wie gesagt, bis jetzt hab' ich noch keine Probleme - werd aber mal hierzu Klaus befragen, wenn er wieder zum nächsten Treffen in den Flieger kommt.

Pfiade,
Django

:evil: Nichts ist wahr, alles ist erlaubt! :evil:

VDR-Server: ASUS A7V8X, Duron 1.300, 256 MB, 3x 120 GB Maxtor HD, PIONEER DVR-106, Design Tower AIR Black, 40x4 LCD,
1x TT-DVB-S V1.6, 3x DVB-S Nova, URC-7562, CentOS 5.5, VDR: 1.6.0

TecVDR: AOPEN MK73LE-N, Duron 1.300, 256 MB, 1x 120 GB Samsung HD, Pioneer DVR-A04, Gehäusesonderbau, 1x TT-DVB-S V1.6 4MB, 1x DVB-S Nova, 1x AV-Board, SuSE 9.0, VDR: 1.3.11

17

Wednesday, November 19th 2003, 12:35am

Hallo Allerseits,

@anonymous: Was Du moechtest koenntest Du auch jetzt schon realisieren, in dem Du statt dem Wrapper das Script selbst benutzt. Das kehrt naemlich im Gegensatz zum Wrapper erst zurueck wenn der Job erledigt ist.
' make it usable for "vdr -r after" ' habe ich in die Todos aufgenommen.

@viking & Doc: Danke fuer den Hinweis! Scheinbar scheint genindex das zumindest so intelligent zu handhaben, dass ichs nicht bemerkt habe. Wuerde es reichen mittels "vdrsync.pl -script-output" die Framegrenzen rauszufinden und dort zu schneiden, oder muessen es GOP-Grenzen sein? Wenn (wie ja das Zitat von Klaus nahelegt) dies der Fall ist, waere das Splitten evtl. besser in vdrsync.pl selbst aufgehoben ? Aber seid Ihr wirklich sicher, dass es die
Aufnahmen beschaedigt ? Denn der VDR selbst hoert auch bei exakt 2000*1024*1024 Bytes auf und beginnt ein neues 00n.vdr...

@pred8or: Je nach Faktor :) Also ich wuerde sagen auf meinem Fernseher ist ein Faktor von 1.2 mit dem blossen Auge fuer mich definitiv nicht zu erkennen.

[edit]
@django: Hoppla, Deinen Beitrag hab ich irgendwie uebersehen, kann Deine Beobachtungen aber durchaus bestaetigen.... ?
[/edit]

cu
gonz

This post has been edited 1 times, last edit by "gonz" (Nov 19th 2003, 12:51am)


18

Wednesday, November 19th 2003, 3:32am

Hi,

ich bin mal radikal geworden und habe 13 Minuten Kurzfilm in 83 Stuecke "zerhackt".

Resultat: alle haben recht :) Subjektiv konnte ich etwa jeden 10. "Dateiwechsel" visuell erkennen. Mit A/V-Sync gab es bis auf ein einziges sehr kurzes Zirpen keinerlei Probleme (wobei 13 Minuten dafuer sicher nicht repraesentativ sind). - Ich gehe davon aus, dass halt das jeweils erwischte Frame kaputt geht.

Morgen wird es eine neue Version geben, die

- die Anzahl der Schnitte auf das noetigste Mass reduziert (statt einfach wenn noetig zu vierteln)
- fast beliebige Dateigroessen als Quelle fressen wird

Ich denke, das Resultat (bei 2 Stunden Film ein kaputtes Frame, welches nur selten bemerkt wird) ist fuer die meisten Zwecke "good-enough quality". Natuerlich lasse ich mich gerne eines besseren belehren.

cu
gonz

19

Thursday, November 20th 2003, 4:29am

Hi,

ich vertage das Release aufs Wochenende :)

cu
gonz

20

Thursday, November 20th 2003, 12:03pm

Quoted

Original von gonz
Hi,

ich vertage das Release aufs Wochenende :)

cu
gonz

Hi Gonz,

die nächste vdrsync Version kann schneiden, und requanten, und alles gleich per mplex wieder zusammen bauen. Schliesslich soll auch noch die genindex Funktionaltität reinkommen, also alles nur eine lange Pipe werden...

Ich habe aber immer noch nicht viel Zeit, und bei sharemarks will ich ja auch noch weitermachen, deshalb wird es ein Weilchen dauern.

Die vdrsync-Version auf meine Platte macht (neben vielen Fehlern ;)) unter anderem jetzt eine PIPE, die

aus vdrsync->mplex->dvdauthor

besteht, so dass ohne temp-Files gleich eine DVD struktur erzeugt wird. Mit Single-Pass soll das auch für DIVX und (S)VCD möglich werden (via ffmpeg), da kann man natürlich auch gleich eine Queue zum shrinken einbauen.

Was die "Zerstörung" angeht: der VDR ist sehr tolerant, was "kaputte" GOPs angeht, das muss er ja auch sein ;) Aber andere Programme sind da evt etwas empfindlicher. Das macht sich zB dann bei vdrsync bemerkbar, wenn Du nur 002.vdr konvertieren willst. Dann wird es ws aussteigen, wenn Du die Daten per split erzeugt hast. Nimmst Du jedoch das gesamte Verzeichnis als Input, dann werden alle Daten intern wieder hintereinandergehängt, und es sollte klappen.

Cheers

Peter / Doc
Mitstreiter für VDRsync gesucht!
Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage