Beiträge von Naito

    In den mkvtoolnix findet sich auch eine "mkvinfo.exe" die Abfragen per CLI erlaubt. Mit einem Batchskript lässt sich so bestimmt das Delay auslesen. Ob und Wie man das allerdings an tmpeg übergeben kann, weiß ich nicht. (Arbeite persönlich nicht mir tmepg.)

    Ich denke, das was du meinst ist eine Gain-Anpassung. (Also eine Anpassung der Lautheit, nicht der Lautstärke.)

    foobar2000 (Freeware) biete eine gute ReplayGain-Anpassung an.
    Möglichkeit wäre also, zuerst alle einzelnen WAVE-Dateien zu normalisieren, und anschließend mit foobar2000 eine ReplayGain-Analyse durchzuführen (empfohlen mit einer der passenden Album-Modes). Anschließend lässt sich die WAVE in eine (fast) beliebiges Format (FLAC?) konvertieren, und dabei zusätzlich vorher den ReplayGain mit einzuberechnen ("ReplayGain Processing" unter "Convert to ...").

    Ich habe mir mal erlaubt für die "Didée AviSynth Filter Collection" zwei Sachen aus dem Need Suggestions for VERY GRAINY source-Thread auf Doom9 in Funktionen umzuwandeln.

    LFDeFlicker()

    PHP
    # Idee von Didée# aus dem VERY-GRAINY-Doom9-Thread (http://forum.doom9.org/showpost.php?p=1073349&postcount=33)# Stand: 2008-04-22# benötigte Plugins: MedianBlur 0.84 #                    RemoveGrain 1.0pre #                    MaskTools v2#                    FluxSmooth 1.1b# The following script will remove the low-frequency flicker, leaving the high-frequencies intact.# In result, there will be almost no smoothing, and the grain basically is fully preserved.# It's just the flicker, or "dancing" effect, that will be removed.# As a side-effect, there might occur some slight toning-down of shadings when there is motion.# One can definetly see it in single-frame comparisons by flipping between original and processed.# But one will hardly note that during watching the moviefunction LFDeFlicker(clip clp){f = clp.MinBlur(1,2).MinBlur(2,2).RemoveGrain(11,-1)f.FluxSmoothT(7).mt_AddDiff(mt_MakeDiff(clp,f,U=2,V=2),U=4,V=4) # eventually, limit the maximum pixel change to +/- 2 :# mt_LutXY(clp,last,"x 2 + y < x 2 + x 2 - y > x 2 - y ? ?",U=2,V=2)return(last)}# Taken from MCBob.avs:function MinBlur(clip clp, int r, int "uv"){uv   = default(uv,3)uv2  = (uv==2) ? 1 : uvrg4  = (uv==3) ? 4 : -1rg11 = (uv==3) ? 11 : -1rg20 = (uv==3) ? 20 : -1medf = (uv==3) ? 1 : -200RG11D = (r==1) ? mt_makediff(clp,clp.removegrain(11,rg11),U=uv2,V=uv2) \    : (r==2) ? mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20),U=uv2,V=uv2) \    :          mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20).removegrain(20,rg20),U=uv2,V=uv2)RG4D  = (r==1) ? mt_makediff(clp,clp.removegrain(4,rg4),U=uv2,V=uv2) \    : (r==2) ? mt_makediff(clp,clp.medianblur(2,2*medf,2*medf),U=uv2,V=uv2) \    :          mt_makediff(clp,clp.medianblur(3,3*medf,3*medf),U=uv2,V=uv2)DD    = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2)clp.mt_makediff(DD,U=uv,V=uv)return(last)}
    Zitat von Didee

    One step further, something in this direction often is very useful for subsequent motioncompensated denoising. If the flicker is left in, it eventually will also disturb the ME engine (making the vectors follow the flicker, causing spatial shifts where in fact there should be none), which will lower the benefit one can get from MC-NR. When the flicker is taken out before the motion search, chances are better to get more clean vectors.

    ContraSharpening()

    PHP
    # Idee von Didée# aus dem VERY-GRAINY-Doom9-Thread (http://forum.doom9.org/showpost.php?p=1076491&postcount=70)# entnommen aus dem YAMCGC_EV-Skript# benötigte Plugins: Masktools v2#                    RemoveGrain 1.0pre#                    Repair# contra-sharpening: sharpen the denoised clip, but don't add more to any pixel than what was removed previously.FUNCTION ContraSharpening(clip denoised, clip original){s    = denoised.minblur(1,1)                                # Damp down remaining spots of the denoised clip.allD = mt_makediff(original,denoised)                       # The difference achieved by the denoisingssD  = mt_makediff(s,s.removegrain(11,-1))                  # The difference of a simple kernel blurssDD = ssD.repair(allD,1)                                   # Limit the difference to the max of what the denoising removed locally.ssDD = SSDD.mt_lutxy(ssD,"x 128 - abs y 128 - abs < x y ?") # abs(diff) after limiting may not be bigger than before.denoised.mt_adddiff(ssDD,U=2,V=2)                           # Apply the limited difference. (Sharpening is just inverse blurring.)RETURN (last)}# Taken from MCBob.avs:function MinBlur(clip clp, int r, int "uv"){uv   = default(uv,3)uv2  = (uv==2) ? 1 : uvrg4  = (uv==3) ? 4 : -1rg11 = (uv==3) ? 11 : -1rg20 = (uv==3) ? 20 : -1medf = (uv==3) ? 1 : -200RG11D = (r==1) ? mt_makediff(clp,clp.removegrain(11,rg11),U=uv2,V=uv2) \    : (r==2) ? mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20),U=uv2,V=uv2) \    :          mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20).removegrain(20,rg20),U=uv2,V=uv2)RG4D  = (r==1) ? mt_makediff(clp,clp.removegrain(4,rg4),U=uv2,V=uv2) \    : (r==2) ? mt_makediff(clp,clp.medianblur(2,2*medf,2*medf),U=uv2,V=uv2) \    :          mt_makediff(clp,clp.medianblur(3,3*medf,3*medf),U=uv2,V=uv2)DD    = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2)clp.mt_makediff(DD,U=uv,V=uv)return(last)}


    _____

    Ich habe mal SPresso für MaskTools v2 modifiziert (Wieso hat das eingentlich schon nicht schon eher mal jmd. gemacht, oder habe ich was übersehen?)


    _____

    Ich bin mir nicht sicher, ob alles, was ich hier gepostet habe auch stimmt. Ich empfehle dringendst, dass sich ein erfahrener Skripte-Schreiber sich das nochmal anguckt, bevor es in Didée AviSynth Filter Collection übernommen wird!
    _____

    Alle Ideen dieser Funktionen sind von Didée, und ihn obliegt natürlich auch die Namensgebung. Falls er also anderen Namen für die Funktionen wählt, bitte diese nehmen. (Ich werde dann meinen Post auch entsprechend abändern.)
    _____

    Persönlich nutzt ich eine Kombination aus SPresso_MT(RGmode=1).LFDeFlicker() gern als Pre-Filtering für die MVAnalyse bei guten Quellen.

    Variable Samplingrate? Sowas ist mir ja noch nie begegnet. Soweit ich weiß benötigen eigentlich alle lossy-codecs konstante Samplingrate (hab es aber auch noch nie testen können).

    Probier mal mit Audacity die variable Samplingrate in eine konstante Samplingrate zu wandeln. Das der Ton bei solch einem Prozedere asynchron wird, kann ich mir eigentlich nicht vorstellen.

    EAC3TO ist mir zwar bekannt, hab es aber noch nie genutzt. Kann daher nix dazu sagen. (Geschweigen denn, das ich überhaupt eigene BDs hätte...)

    Mir ist kein kostenloser, geschweigen denn freier, Encoder für "HD-Audio" bekannt. An Decoder wird derzeit noch gearbeitet.

    Was mir spontan noch einfallen würde wäre sündhaft teure Authoring-Tools für BD. Diese sollten sowas eigentlich können.

    Wie Eriman schon geschrieben hat, geht es am einfachsten mit BeLight, das ist eine GUI für BeSweet. (Installanleitung im Wiki.)

    Einfach auf "File" -> "Create mux file..." und dann auf den Button des entsprechenden Kanals klicken, zu dem der Mono-Stream gehört. Bitte beachten beim Encoder 5.1 anzugeben.

    Statt MeGUI zu sagen, dass es nur Audio bearbeiten soll, kannst du auch gleich den "großen Bruder" des Audio-Bereiches nehmen: BeHappy. (Auf dessem Code-Grundlage fußt das Audio-Encoding von MeGUI. Bitte beachten das der NicAudio-Filter im plugin-Ordner von AviSynth liegt.)

    Allerdings bin ich auch LigH Meinung: Wenn unbedingt pseudo-upmix gewünscht ist, dann bspw. über ProLogic auf dem SAP oder mit passenden Einstellungen in der Soundkarte. (Oder zu höchsten Not auch mit dem ffdshow-Mixer.) Zu empfehlen ist eigentlich nicht von alle dem.

    Vorweg: Ich mache kein Encoding unter Vista, daher kann ich zur Kompatibilität wenig sagen.

    Persönlich mache ich keine Hardsubs mit VirtualDub, da der "Full Processing Mode" nur im RGB-Farbraum arbeitet (und die meisten Quellen als YV12 vorliegen). (Das gilt nur für die Versionen < 1.8.x)

    Das Programm der Wahl heißt meist AviSynth. Das ist ein Frameserver, der mithilfe von (zusätzlichen) Filtern Videobilder an ein anderes Programm weiter leitet. VirtualDub kann eines dieser Programme sein. (MeGUI wäre auch eine gute Alternative, je nach Zielformat.)
    Mit der AviSynth-Installation (was du eigentlich schon haben solltest, wenn du deine Subs mit Aegi gemacht hast) kommt auch eine deutsch Hilfedatei, in der gut beschrieben wird, wie AviSynth funktioniert. (Dies ist eine Unterschwellige Aufforderung an dich, die Hilfe zu lesen ;) )
    Der passende Filter für AviSynth ist Textsub ((fast) identisch zu dem für VirtualDub), der mit der vsfilter.dll in Aegi geladen wird. Ein Skript würde dann ungefähr so aussehen:

    Code
    #Source öffnen (bitte nicht mit DirectShowSource()!)
    
    
    #VSFilter laden
    LoadPlugin("C:\Programme\Aegisub\csri\VSFilter.dll")
    
    
    #Sub einbinden
    TextSub("dein_sub.ass")


    AVS-Skript mit VirtualDub öffnen, "Fast recompress" auswählen und encoden.

    Der AAC-Encoder von Nero kann meines Wissens kein MT, hat nur SSE-Optimierungen (könnte sich aber noch in Zukunft ändern). Alternativ ist aber eine paralleles Encoding von zwei Dateien problemlos möglich (macht foobar2000 bspw. standardmäßig).

    Für foobar2000 gibt es ein Plugin, das MKV öffnen kann.

    Um was für ein AAC handelt es sich denn? AAC-LC oder AAC-HE? Für AAC-HE muss man den SBR-Schalter beim muxing in MKV aktivieren.

    Möglich wäre auch, das die Kanalzuordnung beim Encoding falsch war, wobei dies bei StaxRip eigentlich nicht vorkommen sollte.

    Off-Topic-Diskussion verschoben.
    ___

    Meines Wissens haben die Entwickler angemerkt, dass "-2pass" eher für sehr lange Audiofiles gedacht ist, etwa Konzerte. Wahrscheinlich wird 2pass, wenn überhaupt, dann nur was mit "-br" (ABR) nutzen.

    Ob "-2pass" hilfreich (vllt. sogar kontraproduktiv) für "-q" (VBR) ist wage ich eher zu bezweifeln, v.a. da wir hier ja von Musikstücken von meist 3-5min länge reden. Auch wird bei "-q" das psychoakustische Modell anders gehandhabt als bei "-br". (Mit sind auch keine Tests bekannt, die 1pass vs. 2pass vergleichen. Für die Tests auf Hydrogenaudio wird "-q" ohne "-2pass" verwendet.)

    Falls es ganz genau sein soll, recherchiere ich das nochmal nach.

    Für Blu-Ray Player sind nur LPCM, DD und DTS als Pflichtformate vorgesehen. Alles andere wie DD+, D True-HD, DTS-HD sind für BR optional.


    Bist du dir sicher das LCPM Pflicht ist, meines Wissens ist es optional (zumindest für die Player).

    So was ausführliches wie "DVD Demystifiziert" gibt's für BD wohl noch nicht, oder?


    Im Ansatz hab ich schon einiges Zusammengetragen. (Quelle waren verschiedene c't-Artikel)

    ffdshow->Video decoder configuration->DirectShow-Optionen->Mehrere ffdshow-Instanzen auf 'nur eine - alle Filter im Graphen überprüfen'
    (und die Einschränkungen ffdshow nur oder nicht verwenden in deaktivieren)


    Vielen Dank Selur, das hat geholfen. :daumen:
    ___

    Ich hab mal nach {36b73880-c2c8-11cf-8b46-00805f6cef60} & {56a868b2-0ad4-11ce-b03a-0020af0ba770} in der Regedit gesucht. Es verweist auf IMedia, das lt. der Suchmaschine meines Vertrauens zu DirectX gehört.

    MPC könnte das selber; der Haali Media-Splitter deaktiviert allerdings den MPC-internen MP4-Splitter bei der Installation, um selber verwendet zu werden. Das ist auch gut so.


    Meine Einstellungen sind auch so gewählt, das der interne Splitter vom MPC deaktiviert ist, und der Haali verwendet wird (mit allen DS-Splittern die Haali hat, auch AVI).

    Und bei DirectShowSource wird nun der Haali Media-Splitter nicht verwendet? ... Welcher dann?


    Bei der MP4 kommt anscheinend schon der MP4-Splitter von Haali zum Einsatz, jedoch ist da irgendwie "der Wurm drin".

    - Welchen MP4-Splitter verwendet GraphEdit bei "Render Media File"?
    - Welche Splitter meldet GSpot als Kandidaten (MS A/V [1])?


    Siehe Screenshots anbei. Bei GraphEdit wird anscheinend Haali benutzt, siehe Systray-Icon.

    Mach am besten ein GRF, und lade den Graph dann per DirectShowSource.


    Gern. Welche Filter ganz genau? (Ich benutzt GrapEdit zum ersten mal :redface:)


    Zur Not muss ich halt eine komplette Neuinstallation von WinXP machen. :(

    :ichdoof:
    Notiz an mich: Erst lesen, dann denken, nochmals lesen und dann erst handeln.

    Es soll natürlich "fps=23.976, convertfps=true" werden. :redface: Aber zuvor muss ich das Video erstmal überhaupt öffnen können.

    Ich habe die ffdshow-Version Build 1873 (clsid) probiert, leider auch kein Erfolg. Anbei die config-Datei.

    Ich editiere die avs mit AvsP 2.0.2 (dort bekomme ich die Fehlermeldung und keine Vorschau). Wenn ich jedoch mit dem MPC (letzte deutsche Version) mit einem Skript "DirectShowSource("J:\Sample.mp4")" öffne, bekomme ich ein Bild (wenn auch keinen Ton, was allerdings auch nicht so wichtig ist).

    @ Selur: Hast du beim öffnen einer MP4 das Symbol vom Haali im Systray (beim öffnen via AviSynth)? Ich habe keines bei AvsP, beim MPC schon (auch ffdshow).