Posts by ralf1970

    Ich glaube du läufst da in das gleiche Problem rein wie ich im Beitrag DVD zu VDR TS File - mehrsprachig inklusive AC3 Support - fast gelöst. Gelöst hab ich das auch noch nicht - ich weiss nur, dass es offensichtlich zumindest zwei Varianten gibt, wie die AC3 Spur in den TS-Stream eingebunden werden kann. So wie es aussieht nutzt ffmpeg bei der Konvertierung von VOB die eine Variante und der VDR sieht die Tonspur nur, wenn sie in der anderen Variante kodiert ist.

    Bezüglich der nicht erfolgten AC3 Erkennung gäbe es hier noch folgendes Indiz: Für ein VDR TS File gibt ProjectX folgende Fileinformationen:

    Typ:
    [0] TS (generic PES Container) (SID 0x0084, PMT 0x0084)
    Video:
    PID: 0x00D2(MPEG-2)
    Audio:
    PID: 0x00DC{deu}(Mpg1)
    PID: 0x00DD{mis}(Mpg1)
    PID: 0x00E1(AC-3){deu}[PD]
    PID: 0x00E6[PD]

    Die generierte TS Datei liefert folgendes:
    Typ:
    [0] TS (generic PES Container) (SID 0x0001, PMT 0x1000)
    Video:
    PID: 0x0100(MPEG-2)
    Audio:
    PID: 0x0101{ger}(Mpg1)
    PID: 0x0102{ger}[PD]
    PID: 0x0103{eng}(Mpg1)
    PID: 0x0104{eng}[PD]

    Weiss jemand woran ProjectX festmacht, dass der dritte Audiostream in der VDR Aufnahme einen AC3 Indikator bekommt und der zweite und vierte in der selbstgebauten Datei nicht?

    DVD's in VDR Files zu wandeln versucht hier offenbar der eine oder andere.

    Mit der Grundeinstellung - das kann ja kein Problem sein, hab ich mir diesbezüglich auch mal einen Tag Urlaub um die Ohren gehauen :)

    Bisher alles auf Händen und Knien - sprich per Hand. Was ich erreichen wollte, war die Erzeugung einer TS Datei mit deutscher und englischer MP2 Tonspur und wenn möglich mit entsprechenden AC3 Spuren.

    Bild und MP2 Ton, inklusive richtiger Anzeige der Sprache im Audio Menü im VDR, funktionieren - was nicht hinhaut ist der Teil mit dem AC3. VLC kommt mit den eingebettet AC3 Spuren klar, der VDR erkennt scheinbar nicht mal, dass es Tonspuren sein sollen. An dieser Stelle bin ich noch auf der Suche nach einem Hint was da falsch läuft - ich vermute, dass der VDR da noch eine Zusatzinformation benötigt. Leider weiss ich aber nicht welche.

    Bisher reichen zum Wandeln transcode und ffmpeg. Vielleicht interessiert das Ergebnis ja jemanden, vielleicht hat auch noch einer eine Idee was mit den AC3 Spuren schief geht.

    Ausgegangen bin ich von einem DVD Image:

    - Übersicht über Haupttrack zeigen:

    Code
    tcprobe -i .cdr -T 1,-1,1

    - Haupttrack auslesen:

    Code
    tccat -T 1,-1,1 -i .cdr > xx.vob

    - AC3 Spur auslesen - Beispiel Spur 2 ist Deutsch

    Code
    tcextract -i xx.vob -x ac3 -a 2 > xx.de.ac3

    - weitere AC3 Spuren auslesen - Beispiel Spur 1 ist Englisch

    Code
    tcextract -i xx.vob -x ac3 -a 1 > xx.en.ac3

    - Lautstärkekorrektur bestimmen

    Code
    tcdecode -x ac3 -i xx.ac3 | tcscan -x pcm -d 1

    da kommt dann sowas:

    [tcscan] audio frames=210149.60, estimated clip length=8405.98 seconds
    [tcscan] (min/max) amplitude=(-1.000/0.874), suggested volume rescale=1.350
    [tcscan] V: 210149 frames, 8405 sec @ 25.000 fps
    [tcscan] A: 128.25 MB @ 128 kbps

    - AC3 in MP2 wandeln und Lautstärke anpassen: (transcode hängt an den Ausgabenamen noch die Endung .mpa an)

    Code
    transcode -i xx.de.ac3 -o xx.de.mp2 -x null,ac3 -y null,mp2 -s 1.350

    - weitere AC3 in MP2 wandeln:

    Code
    transcode -i xx.en.ac3 -o xx.en.mp2 -x null,ac3 -y null,mp2 -s 1.350

    - Video mit Tonspur zusammenführen - (AC3 marker fehlt noch!)

    Code
    ffmpeg -i xx.vob -vcodec copy \
        -i xx.de.mp2.mpa -acodec copy -alang ger \ 
        00001.ts \ 
        -i xx.de.ac3 -alang ger -acodec copy -newaudio \ 
        -i xx.en.mp2.mpa -acodec copy -alang eng -newaudio \ 
        -i xx.en.ac3 -acodec copy -alang eng -newaudio

    00001.ts dann in ein passendes Verzeichnis auf dem VDR kopieren und den die Index Datei bauen lassen. Achtung: Der Name des Recodingverzeichnisses muss exakt den Muster, dass der VDR verwendet folgen - sonst erkennt der VDR die neue Aufzeichnung nicht.

    Quote

    Original von magicdragon67
    Hmmm das ist genau das, was ich gemacht habe.
    Ich probiere es mal gezielt mit einer zerstückelten Aufnahme.

    Das wäre gut - nicht zerstückelte Aufnahmen werden nämlich nicht angefaßt - die liegen ja schon vollständig auf einer Platte. Ach so, nur so als Hinweis - index.vdr wird nicht mit auf eine andere Platte verschoben. Das script faßt nur die eigentlichen Video-Dateien an.

    Ralf

    Das wäre die Variante:

    Code
    mvvideo /video0

    Weitere Parameter sind nur nötig um gezielt Aufnahmen von einer Platte auf eine andere zu verschieben.

    After recording ist aber nicht der richtige Platz dafür - das Script faßt nichts an, was sich innerhalb der letzten Zeit (eine Stunde oder so - ich müßte nachschauen) geändert hat. Also ein cron job um das einmal täglich zu machen wäre vermutlich angemessener.

    Ralf

    Edit: hab nachgeschaut - es faßt nur nichts an, was sich geändert hat, seitdem das Script gestartet wurde. In sofern ginge "after recording":

    Code
    mvvideo /video0/<PfadZurAufnahme

    Damit wird dann nur genau die Aufnahme angefaßt um die es gerade geht.

    Die Frage ist ob die sie wirklich ausschalten willst oder ob es dir reicht, wenn sie de facto keinen Strom verbrauchen. Du könntest z.B. per "hdparm -S 5 /dev/hda" die Spindown-Zeit der Platte auf 25 Sekunden setzen, so dass sie automatisch 25 Sekunden nach dem letzten Zugriff herunterfährt. Beim nächsten Zugriff auf die Platte (und nur genau dann) fährt sie automatisch wieder hoch - ganz ohne Streß. Keine Bastelei, kein "Uups - hab ich doch ausversehen die Platte im Betrieb ausgeschaltet" ...

    Ralf

    ... das Script ist bisher klar mit mir selbst als Zielgruppe entwickelt worden: --dry-run hatte deshalb noch niemand nachgefragt :)

    Ansonsten versucht das Script die Struktur der Aufnahmeverzeichnisse möglichst nah an dem zu halten, was der vdr ohnehin getan hätte, wenn er nur gewußt hätte was ich von ihm will. Sprich die Verwaltungsinfos - index.vdr, marks.vdr ... - werden immer im primären Aufnahmeverzeichnis gehalten und die großen Brocken - 001.vdr, 002.vdr ... - werden in die übrigen Aufnahmeverzeichnisse verteilt. Nur eben nicht ganz so wahllos, sondern alle zu einer Aufnahme gehörenden Daten in ein Verzeichnis.

    Ansonsten ist mein Archiv so organisiert, dass ich per LVM dafür sorge, dass die sekundären Aufnahmeverzeichnisse immer nahezu voll sind und ich dort nur dann Platz schaffe, wenn das primäre Verzeichnis vollgelaufen ist und ich von dort Aufnahmen (per mvvideo) wegkopiere. D.h. der vdr schreibt ganz freiwillig immer nur in das primäre Aufnahmeverzeichnis - da dort immer am meisten Platz ist. Nebenbei hat das den Effekt, das die Platten für die sekundären Verzeichnisse de facto auch immer im Sleep-Modus sind - es sei denn ich starte eine Wiedergabe einer Aufnahme, die in einem der sekundären Verzeichnisse liegt.

    Da das primäre Videoverzeichnis hier immerhin rund 600GB faßt ist nur alle paar Monate eine Reorganisation nötig und ich brauche (zumindest für die Aufnahmestrategie) keine Patches am vdr vorzunehmen - da patche ich schließlich auch so schon genug dran rum ;)

    Ralf

    mvvideo sorgt im "consistency check" Modus dafür, dass Aufnahmen immer vollständig in einem Video-Directory zum liegen kommen. Als Basis gilt dabei das Video-Directory in dem 001.vdr liegt. Ansonsten kannst du damit auch geziehlt Aufnahmen von einem Video-Directory in ein anderes verschieben ...

    Das ist jedenfalls das Script mit dem ich meine 3TB hier unter Kontrolle halte. Eventuell hilft es dir ja weiter.

    Ralf

    Wenn ich es richtig sehe versucht er erst das RAID zu erkennen und lädt danach die Treiber für deine SATA Platten. Vermutung: das RAID ist noch da - in deiner Konfiguration wird es nur nicht automatisch erkannt.

    Versuche mal ab du es hinbekommst den sata_via Treiber früher zu laden. Eventuell mußt du dazu eine initrd bauen, in der der sata_via mit enthalten ist (unter SuSE wären die Einstellungen dazu in /etc/sysconfig/kernel INITRD_MODULES="sata_via" und man müßte mkinitrd rufen - wie das bei ct-vdr ist weiß ich leider nicht)

    Quote

    Original von knebb


    Aber nur dann, wenn man ein "Stripe-LV" gebaut hat. Nicht im Regelfall. Dann ist es nämlich linear RAID.

    Ok - du hast natürlich Recht - man hat beim üblichen LVM eine etwas höhere Chance Daten wiederzufinden wenn ein PV stirbt, als beim üblichen RAID0. Es sind aber in einem solchen Fall statistisch immer Daten weg, was wie ich finde ein hinreichendes GAU Level darstellt um unakzeptabel zu sein.

    LVM ist was Datensicherheit angeht vergleichbar mit RAID 0. Wenn man also versucht einen Plattenfehler zu überleben, sollte man auf jeden Fall ein RAID mit Redundanz unter das LVM legen (also RAID 1, 4, 5, 6 ... nicht aber RAID 0).

    Ok - ich hab nachgesehen. Auch bei RAID0 müssen laut Doku die Platten gleich groß sein (stimmt nicht ganz - die kleinste Platte bestimmt wieviel von den anderen Platten für das RAID verwendet wird). Du würdest also beim Zusammenfassen deiner zwei RAID5 in einem darüberliegenden RAID0 300GB verlieren - das würde ich als unpraktisch einschätzen. Vorteil wäre allerdings, dass du (wenn es deine Kontroller hergeben) darauf fast mit der Summe der Transferrate beider RAIDs zugreifen könntest.

    LVM dagegen faßt die beiden Physical Volumes md0 und md1 zu einer gemeinsamen Volume Group zusammen, der man auch jederzeit weitere Physical Volumes hinzufügen kann (operatives erweitern von RAID's - zumindest RAID5 - ist bei Softraid dagen erst vor kurzem dazugekommen). In der Volume Group wiederum kannst du so viele Logical Volumes anlegen wie du gern möchtest. Diese kannst du auch vergrößern oder - wenn es das darauf angelegte Filesystem erlaubt - wieder verkleinern wie du das für richtig hälst. Ansonsten verhält sich LVM beim Ausfall eines Physical Volumes ähnlich wie RAID0 - du verlierst Daten. Also bietet es sich an LVM über RAID5 o.ä. anzulegen - und das ist schließlich genau genau dein Fall.

    Quote

    Original von jerry_seinfeld
    Ralf Dein Spript finde ich in einigen Punkten sehr Interessant. ... Vielleicht kannst Du Dein Skript so ändern, so dass man es direkt von VDR aus für bestimmte Aufnahmen oder Verzeichnisse aufrufen kann.

    Sollte eigentlich gehen. Ich mache das immer per Hand - zugegeben. Was hält dich gerade davon ab, es vom VDR z.B. als "reccmd" direkt zu starten?

    Ralf

    Von dem Promise TX4 kann man booten. Da es sich um einen "doofen" Controller handelt (keine unnötige pseudo RAID Funktionalität) stellt er sich dem BIOS als ganz normaler HD Controller dar. Der Linux Kernel findet die daran hängenden SATA Platten als SCSI Devices - alles ganz regulär. Ein Größenlimit für die angeschlossenen Platten konnte ich noch nicht feststellen. Hab auf Arbeit 8 x 320GB an 2 von diesen Controllern und zu Hause 4 x 320GB an dem einen TX4 in meinem Datengrab.