DVD = VOB / MPEG-2 inkl. AC3 5.1 Tonspur mit zu hohem DELAY unter VirtualDub öffnen

  • Warum eigentlich ein Downmix mit eac3to??? AviSynth kann auch intern einen 2.0-Downmix einer 5.1-Tonspur durchführen - siehe z.B. hier:
    http://forum.doom9.org/showthread.php?t=133884

    Hallo Tom,

    leider bekomme ich die AC3 | 5.1 Tonspur nicht vernüftigt als 2.0 Downgemixt!
    Entweder höre ich nur die Musik im Hintergrund und alles andere fehlt :(
    Hier mal mein Script:

    Code
    LoadPlugin("C:\AviSynth\DGMPGDec\DGDecode.dll")  
    LoadPlugin("C:\AviSynth\NicAudio 2.0.6\NicAudio.dll")  
    Video = MPEG2Source("VTS_01_1.d2v")  
    Audio = NicAC3Source("VTS_01_1 01 de-German 3_2ch 448Kbps DELAY 0ms.ac3")  
    Stereo = GetChannel(Audio, 1, 2) 
    flr = GetChannel(audio, 1, 2) 
    fcc = GetChannel(audio, 3, 3) 
    new_audio = MixAudio(flr, fcc, 0.5858, 0.4142) 
    Return AudioDub(Video, Stereo)


    Ich glaube (und hoffe) einfach mal nicht, dass 'H264x' VirtualDub für's Audioencoding nehmen will.
    Audiovorschau -> Ja (dafür kann man ja übergangsweise den Ton auf 2 Kanäle runter mischen)
    ... aber für's Audioencoding (auch mit AviSynth als Hilfsmittel) gibt es bessere/sinnvollere Lösungen.

    Nur für die Audiovorschau unter VirtualDub benötige ich es :)

  • :grübeln:

    Code
    ...
    Stereo = GetChannel(Audio, 1, 2) 
    flr = GetChannel(audio, 1, 2) 
    fcc = GetChannel(audio, 3, 3) 
    new_audio = MixAudio(flr, fcc, 0.5858, 0.4142) 
    Return AudioDub(Video, Stereo)

    Abschreiben kann (fast) jeder. Verstehen, was da passiert, offenbar deutlich weniger.

    Erstens schmeißt du deine Mischung unbenutzt wieder weg. Zweitens ... wo hast du diese verblüffend exakten Werte her?

  • Entweder höre ich nur die Musik im Hintergrund und alles andere fehlt :(


    'LigH' sagt es schon: hier ist Grundlagenverständnis vonnöten. Was du da beschreibst, ist letztendlich kein Wunder - die Kanalreihenfolge ist bei 5.1-Ton:

    Zitat

    1 -> front left channel
    2 -> front right channel
    3 -> front center channel
    4 -> LFE (Subwoofer)
    5 -> rear left channel
    6 -> rear right channel


    Dein:

    Code
    Return AudioDub(Video, Stereo)


    ... am Ende vom Script ist gleichbedeutend mit:

    Code
    Return AudioDub(Video, GetChannel(Audio, 1, 2))


    Sprich: NUR Front-Right- und Front-Left-Kanal werden als Stereo ausgegeben - die Dialoge liegen aber üblicherweise auf dem Center-Kanal ;) . Das restliche Zusammengemische in den Zeilen zwischen Stereo=... und Return wird hingegen NIE aufgerufen und somit ignoriert.

    Korrekt wäre (= einfaches Zusammenmischen der vorderen 3 Kanäle auf Stereo-Ton):

    Code
    LoadPlugin("C:\AviSynth\DGMPGDec\DGDecode.dll")  LoadPlugin("C:\AviSynth\NicAudio 2.0.6\NicAudio.dll")  Video = MPEG2Source("VTS_01_1.d2v")  Audio = NicAC3Source("VTS_01_1 01 de-German 3_2ch 448Kbps DELAY 0ms.ac3")  flr = GetChannel(Audio, 1, 2) fcc = GetChannel(Audio, 3, 3) New_Audio = MixAudio(flr, fcc, 0.5858, 0.4142) Return AudioDub(Video, New_Audio)

    Oder alternativ (= für Dolby ProLogic II kompatiblen Stereo-Ton):

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • Dann ist das wohl eine -3dB-Mischung des Center in Links und Rechts? Na ja, simpel aber typisch.

    Na, in dem Fall wird wohl einfach nur vergessen worden sein, "Stereo" noch mal mit "new_audio" zu tauschen, nachdem man sich den Unterschied angehört hatte.

    Die ProLogic-II-Mischung könnte den Vorteil haben, dass der Ton von hinten (der durchaus auch zum bewussten Trennen von Schallquellen beitragen kann) nicht völlig verloren geht, selbst wenn man keinen Surround-Decoder hat, sondern nur mit zwei Lautsprechern hört.

  • 'LigH' sagt es schon: hier ist Grundlagenverständnis vonnöten. Was du da beschreibst, ist letztendlich kein Wunder - die Kanalreihenfolge ist bei 5.1-Ton:

    Korrekt wäre (= einfaches Zusammenmischen der vorderen 3 Kanäle auf Stereo-Ton):

    Code
    LoadPlugin("C:\AviSynth\DGMPGDec\DGDecode.dll")  LoadPlugin("C:\AviSynth\NicAudio 2.0.6\NicAudio.dll")  Video = MPEG2Source("VTS_01_1.d2v")  Audio = NicAC3Source("VTS_01_1 01 de-German 3_2ch 448Kbps DELAY 0ms.ac3")  flr = GetChannel(Audio, 1, 2) fcc = GetChannel(Audio, 3, 3) New_Audio = MixAudio(flr, fcc, 0.5858, 0.4142) Return AudioDub(Video, New_Audio)

    Danke, jetzt läuft es :)


    Warum eigentlich ein Downmix mit eac3to??? AviSynth kann auch intern einen 2.0-Downmix einer 5.1-Tonspur durchführen - siehe z.B. hier:http://forum.doom9.org/showthread.php?t=133884

    Code
    "C:\AviSnth\eac3to\eac3to.exe" "C:\VTS_01_1 T81 3_2ch 448Kbps DELAY 0ms.ac3" "C:\VTS_01_1new2.0.wav" -down16 -down2 -progressnumbers -log="C:\VTS_01_1new2.0.wav_Output_eac3to.txt" 
    Pause

    Diese Methode habe ich vorher benutzt, weil ich es nicht anders wusste ""
    Theoretisch ist ja beides das selbe?
    Nur halt, das die AC3 | 5.1 Tonspur 1x nach WAV 2.0 umgewandelt werden musste, bevor ich sie im AviSynth Script mit aufnehmen konnte.
    Zuverlässig lief es ja, nur eben Umständlich.
    Dank dir, habe ich den direkten Weg nach Rom gefunden!

  • Hallo Tom,

    wollte noch kurz wissen ob der AC3 | 5.1 Downmix auf 2.0 mit eac3to genauso sauber & zuverlässig ( dafür Umständlicher ) ausgeführt wird,
    wie es das AviSynth Script auf direktem Weg macht?

  • Wie eac3to den Downmix GENAU erledigt -> das weiß wohl nur 'madshi' selbst. Vielleicht ist es auch irgendwo dokumentiert... spontan wüsste ich aber nicht wo.

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • Okay :)
    Selber konnte bisher keine fehler feststellen, als eac3to den AC3 | 5.1 Downmix auf WAV 2.0 gemacht hat.
    Die Videos liefen bisher alle sauber & zuverlässig unter VirtualDub ab.

  • Bin gerade dabei einen kurzen DVD Trailer unter VirtualDub per AviSynth zu öffnen (decodieren)

    Diesmal mit L-SMASH statt DGDecode



    DVD = VOB, MPEG-2 inkl. AC3 2.0 Tonspur mit L-SMASH decodieren.avs

    Code
    # Möglichkeit (1)* # AC3 | 2.0 Tonspur vorher mit DGIndex > demuxen und mit L-SMASH separat im Script aufnehmen  LoadPlugin("C:\AviSynth\L-SMASH\LSMASHSource.dll") # r724 Git-7c1dddb > kam hier zum Einsatz! V = LWLibavVideoSource("Test.vob") A = LWLibavAudioSource("Test T80 2_0ch 224Kbps DELAY 0ms.ac3") # Möglichkeit (1)* AudioDub(V, A) AssumeFPS(25.000) Return last
    Code
    # Möglichkeit (2)* 
    # Die AC3 | 2.0 Tonspur direkt im Container als Gesamtstück mit L-SMASH laden 
     
    LoadPlugin("C:\AviSynth\L-SMASH\LSMASHSource.dll") # r724 Git-7c1dddb > kam hier zum Einsatz! 
    V = LWLibavVideoSource("Test.vob") 
    A = LWLibavAudioSource("Test.vob") # Möglichkeit (2)* 
    AudioDub(V, A) 
    AssumeFPS(25.000) 
    Return last

    Wahnsinn, was L-SMASH alles Decodieren kann :)

    Hat DGMPGDec - DGIndex 1.5.8 überhaupt noch seine Berechtigung?
    L-SMASH macht bei der: # Möglichkeit (2)* > fünf Arbeitsläufe in einem Arbeitsschritt:

    1.) Demuxen fällt weg
    2.) Video Indexierung
    3.) Audio Indexierung
    4.) Video Decodierung
    5.) Audio Decodierung

  • "Fehler" wird eac3to sicher nicht machen. Es kann allerdings den Downmix auf verschiedene Art durchführen, sowohl simples Front-Stereo als auch DPL II, mit oder ohne Phasenverschiebung der rückwärtigen Kanäle oder Einmischung des LFE-Kanals.

    Code
    ...
    -downDpl           downmix multi channel audio to Dolby Pro Logic II
    -downStereo        downmix multi channel audio to simple Stereo
    -phaseShift        shift phase (when doing stereo downmixing, see "downDpl")
    -mixlfe            mix LFE in (when doing stereo downmixing, see "downDpl")
    ...
  • Und was sagt Ihr zu meiner Entdeckung im Beitrag: #29 ( <-- Das könnten "Christopher Columbus" Werte sein )
    DVD = VOB, MPEG-2 inkl. AC3 2.0 Tonspur mit L-SMASH decodieren

    L-SMASH macht bei der: # Möglichkeit (2)* > fünf Arbeitsläufe in einem Arbeitsschritt:

    1.) Demuxen fällt weg
    2.) Video Indexierung
    3.) Audio Indexierung
    4.) Video Decodierung
    5.) Audio Decodierung

    Brauch man DGMPGDec - DGIndex 1.5.8 überhaupt noch? ( Ist ja mittlerweile veraltet )
    DVD Decodierung mit L-SMASH läuft Prima :)
    Wer super, wenn mehr Leute es Testen würden,
    damit man vielleicht versteckte Fehlerquellen ausfindet machen könnte, die bei der Decodierung auftreten könnten...

    Einmal editiert, zuletzt von H264x (11. Juni 2014 um 22:50)

  • Der Vorteil an DGMPGDec mag sein, dass auch mehrere VOB-Segmente als Einheit gut verarbeitet werden, sofern sie kompatibel sind (D-D IFO Mode / Shrink Reauthor / IFOEdit Author / PGCDemux). Bei L-SMASH Works würde ich eine einzelne Datei als Quelle empfehlen, da weiß ich nicht, wie ich Dateigruppen oder Playlisten verwenden kann.

    Auch beim Post-Processing hat DGMPGDec den teilweisen Vorteil, dass es sehr detailliert konfigurierbar ist; nachteilig ist nur die veraltete Deblocking-Technik, die den Vorteil, dass der Deblocker adaptiv zur encodierten Quantisierung arbeiten kann, leider wieder einschränkt.

    Ja, DGMPGDec ist alt. Aber MPEG2 in DVD ist auch alt. Da ändert sich nicht mehr viel daran. Und schnell genug ist der Decoder selbst ohne Multithreading wohl immer noch. Wer aber seine Hauptfilm-PGC in eine überlange VOB extrahiert, der wird auch mit L-SMASH Source decodieren können, und eventuelle Filterei muss dann eben anschließend auf den bereits decodierten Clip folgen (z.B. mit Deblock).

  • Der Vorteil an DGMPGDec mag sein, dass auch mehrere VOB-Segmente als Einheit gut verarbeitet werden,
    sofern sie kompatibel sind (D-D IFO Mode / Shrink Reauthor / IFOEdit Author / PGCDemux.

    Danke, gut zu wissen :)


    Auch beim Post-Processing hat DGMPGDec den teilweisen Vorteil, dass es sehr detailliert konfigurierbar ist;
    nachteilig ist nur die veraltete Deblocking-Technik, die den Vorteil, dass der Deblocker adaptiv zur encodierten Quantisierung arbeiten kann,
    leider wieder einschränkt.

    Wusste garnicht, das bei DVD Material von Spielfilmen eine Deblocking Technik zum Einsatz kommt.
    DVD Spielfilme dürften doch eigentlich keine Bildfehlerblöcke drin haben, da die Qualität gestochen scharf,
    dank der hohen Bitrate ist, oder täusche ich mich da??
    Ich rede jetzt vom reinen Decoding!


    Wer aber seine Hauptfilm-PGC in eine überlange VOB extrahiert, der wird auch mit L-SMASH Source decodieren können,
    und eventuelle Filterei muss dann eben anschließend auf den bereits decodierten Clip folgen (z.B. mit Deblock).

    Moment, bei der Übergabe des AviSynth Scriptes z.B. an den x264 Encoder, kommt ja die DeBlock Technik durch den Befehl: --tune film > zustande...
    Wenn ich den DVD Film nur unter VirtualDub absspielen möchte, sind mir noch keine Block Fehler aufgefallen.
    Allgemein bei Digitalen DVD Material von Spielfilm DVDs, sind mir noch keine Block Fehler aufgefallen! Gibt es da Ausnahmefälle?
    Auch beim letzten Test mit: DVD = VOB, MPEG-2 inkl. AC3 2.0 Tonspur mit L-SMASH decodieren.avs > ist bis jetzt alles in Ordnung gewesen :)

    Kenne den Einsatz von DeBlock Filtern, bisher nur aus dem bei Analogen Bereich:
    [Blockierte Grafik: http://upload.wikimedia.org/wikipedia/commons/3/3e/Deblock1.JPG]



    Bei L-SMASH Works würde ich eine einzelne Datei als Quelle empfehlen,
    da weiß ich nicht, wie ich Dateigruppen oder Playlisten verwenden kann.

    Jepp genau so, habe ich den DVD Spielfilm mit DVD Shrink auf die Festplatte gerippt :)
    Mache ich eigentlich immer so, auch als ich noch mit DGMPGDec - DGIndex 1.5.8 gearbeitet habe!
    Ich glaub L-SMASH könnte gar nicht mit mehreren VOB Dateien als Gesamte Video Einheit umgehen?? Müsste ich mal testen...
    VTS_01_1.VOB | VTS_01_2.VOB | VTS_01_3.VOB | VTS_01_4.VOB | VTS_01_5.VOB | VTS_01_6.VOB
    DGMPGDec - DGIndex 1.5.8 erstellt problemlos eine Gesamt Index aus den Einzel VOB´s
    [Blockierte Grafik: http://img.xrmb2.net/images/761471.png]

    Sollte man bei der Erstellung einer einzelnen großen VOB Datei, die "Logische Neuanordnung der ausgewählten Spuren" aktivieren??

    [Blockierte Grafik: http://img.xrmb2.net/images/596786.png]

    [Blockierte Grafik: http://img.xrmb2.net/images/492322.png]


    Sieht doch schon mal ganz gut aus :)
    [Blockierte Grafik: http://img.xrmb2.net/images/160462.png]

    3 Mal editiert, zuletzt von H264x (12. Juni 2014 um 14:48)

  • Hi H264x

    Du soltest im Bild ...DVD Shrink Einstellungen..... die erste Auswahlanzeige abdecken.....gemäss Rules hier im Forum.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • DVD Spielfilme dürften doch eigentlich keine Bildfehlerblöcke drin haben, da die Qualität gestochen scharf,
    dank der hohen Bitrate ist, oder täusche ich mich da??

    Ganz pauschal: Ja. Kaum eine DVD hat überall Videobitraten bzw. Quantisierungsfaktoren, die artefaktfreie Bilder in allen Szenen (auch mit so richtig heftiger Action) garantieren können.

    Erst recht seit DVDs schlechter aussehen müssen als Blu-rays... ;D

    Das bedeutet aber nicht, dass man ein meistens ziemlich sauberes DVD-Bild unbedingt mit kräftigem Deblocken wieder zermatschen muss. Dezente Anwendung ist immer besser.

    Wenn man wüsste, welche Szenen gröber quantisiert werden mussten, könnte man dort stärker gegen Blöcke filtern als im Rest. Das könnte DGMPGDec, verwendet aber leider eine veraltete Deblocking-Technik.

    Der AviSynth-Filter "Deblock" verwendet eine ähnliche Technik wie der Inloop-Filter in MPEG-4 AVC (H.264), hier arbeiten also ein AVC-Encoder und ein AVC-Decoder zusammen. Bei MPEG-2 gab es das noch nicht. Hätte Donald Graft mal etwas mehr Zeit und Lust gehabt, hätten wir einen quantisierungs-adaptiven Deblocking-Filter mit der Technik aus "jedem" MPEG-4 AVC-Decoder auch in einem MPEG-2-Decoder haben können...


    Ich rede jetzt vom reinen Decoding!

    Ich auch, mehr oder weniger. :rolleyes_:

    Blockartefakte entstehen ja erst während der Encodierung dadurch, dass zum Sparen von Bitrate stärker quantisiert werden muss, als zum Erhalt aller Details nötig gewesen wäre. Der MPEG-2-Encoder speichert ein "Slice" (Videoframe-Abschnitt) mit einem bestimmten Quantisierungsfaktor, mehr Nebeninformationen gibt es hier nicht. Der AVC-Encoder kann die Abweichung bereits messen und hilft so bereits dem Decoder, indem er Daten im Video speichert, die auf die Stärke des Deblock-Filters beim Decodieren Einfluss haben (immer, nicht nur wenn der Schwellwert mit einem Tuning verändert wird); das funktioniert beim AviSynth-Filter "Deblock" nicht, weil der ja ein bereits decodiertes Video vorgesetzt bekommt, also die Quantisierung vor dem Decodieren nicht mehr kennen kann – hier muss man leider einen konstanten Quantisierungsfaktor vorgeben.

    Dein Beispiel des "foreman"-Clips ist wunderbar gewählt, Blockartefakte gibt es da nämlich vor allem wegen der Kompression in einem noch älteren digitalen Format, bei der CIF-Auflösung wohl eher MPEG-1. Was du da im linken Bild siehst, ist mit Sicherheit kein originales YUV wie gecaptured.


    Sollte man bei der Erstellung einer einzelnen großen VOB Datei, die "Logische Neuanordnung der ausgewählten Spuren" aktivieren??

    Wahrscheinlich ja. Es dürfte besser sein, wenn die einzige übriggelassene Tonspur auch die erste Audio-Spurnummer bekommt. Kann ja sein, dass bei mehsprachigen Produktionen ausgerechnet die deutsche Tonspur mal auf der DVD die zweite oder dritte war.

    Auf gute Zusammenarbeit:

    REGELN befolgen | SUCHE benutzen | FAQ lesen | STICKIES beachten

    5 Mal editiert, zuletzt von LigH (12. Juni 2014 um 15:23)

  • Sollte man bei der Erstellung einer einzelnen großen VOB Datei, die "Logische Neuanordnung der ausgewählten Spuren" aktivieren??

    Es gibt eine Anleitung (und eine Erklärung) genau um diesen Punkt, leider nur auf Englisch, aber google kann übersetzen. Wichtig ist es allerdings nur für DVDs mit Menü.

  • Da hier aber nur eine PGC für eine weitere Konvertierung extrahiert werden soll, ist es nicht notwendig, dass jede Tonspur die ursprüngliche Audiospur-Nummer behält. Stattdessen wäre es denkbar, dass beim Indizieren durch L-SMASH Works oder FFMS2 die Tonspuren zuverlässiger entdeckt werden, wenn sie in der Nummerierung "am Anfang beginnen". Sicher weiß man das aber erst, wenn man es mal probiert, ob es für LwLibavAudioSource einen Unterschied macht, ob die Tonspuren nach dem PGC-Extrahieren die Nummer 1 und 2 oder die Nummer 5 und 3 haben. ;)

  • Vielen Dank für die vielen Infos :)
    Um nun zum Abschluß zu kommen, hier noch mein AviSynth Script:

    DVD = VOB, MPEG-2 inkl. AC3 5.1 Downmix auf 2.0 mit L-SMASH decodieren.avs


    Code
    # Möglichkeit (1)* # AC3 | 5.1 Tonspur vorher mit DGIndex > demuxen und mit L-SMASH separat im Script aufnehmen  LoadPlugin("C:\AviSynth\L-SMASH\LSMASHSource.dll") # r724 Git-7c1dddb > kam hier zum Einsatz! Video = LWLibavVideoSource("VTS_01_1.VOB") Audio = LWLibavAudioSource("VTS_01_1 T81 3_2ch 384Kbps DELAY -15ms.ac3") # Möglichkeit (1)* flr = GetChannel(audio, 1, 2) fcc = GetChannel(audio, 3, 3) New_Audio = MixAudio(flr, fcc, 0.5858, 0.4142)AudioDub(Video, New_Audio)Return AssumeFPS(25.000)

    Viel Spass beim Öffnen unter VirtualDub :)

    [Blockierte Grafik: http://img.xrmb2.net/images/160462.png]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!