PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DirectShow, Filter, Merits und so'n Kram


Martin
07.03.2004, 20:29
Hallo DirectShowgeplagte (ich gehöre auch dazu),

nach mehreren Stunden der DirectX-SDK-lektüre (leider nur englisch) und unzähligen Programmierversuchen kann ich erste Ergebniss vorweisen. Stolz sein.
Die Meritwerte auf meinem Rechner habe ich so verändert das beim abspielen einer AC3-Datei, die machen ja immer die Probleme, mit dem Windows-Medienplayer ein Graph gerendert wird der nicht funktioniert.
Dazu eignet sich das Programm "DirectShow-Filtermanager" besonders gut. Man kann damit nicht nur Meritwerte verändern sondern auch Filter registrieren und deregistrieren. Wichtig, nach dem Ändern von Meritwerten muß der Rechner neu gebootet werden. Informationen zu dem Programm habe ich auf dieser Seite (http://www.silent-dreams.de/prg-dsfiltermanagement.html) gefunden. Leider geht der Downloadlink ins leere aber es gibt ja Google und so habe ich das Programm dann hier laden können. (http://www.softella.com/dsfm/index.en.htm)

Jetzt ist mir beim hochladen der Bilder dieser blöde Internetexplorer abgestützt und ich hatte schon so viel geschrieben. :evil: Deshalb jetzt nur in Stichworten.

Mit Graphedit einen Filter für AC3-Dateien erstellen. (Bild "AC3-Gaph.jpg")
Die Verbindung zwischen den Filtern löschen. (Bild "Disconnect-Pins.jpg") Die Quelldatei löschen.
Einen Graphen für MpegAudiodateien erstellen. (Bild "MPG-Audio.jpg") Der AC3-Parser bleibt jetzt übrig.
Wieder die Verbindungen und die Quelldatei löschen.
Der Gaph, eigentlich nur Filter, sollte dann so aussehen. (Bild "AudioGraph.jpg") Den Graphen speichern.
In der Mpeg2Schnitt.ini oder/und den Arbeitsumgebungsdateien einen Verweis zu der Graphdatei (z.B. Audiograph.grf) herstellen. (AudioGraphName=Audiograph.grf) Liegt die Datei nicht im M2S-Verzeichnis muß den komplette Path angegeben werden.
Beim Öffnen einer Audiodatei und eingeschalteter Fehlermeldungen für Audiowiedergabe erscheinen 2 Meldungsfenster. Im Ersten stehen die Von der Graphdatei geladenen Filter (in meinem Fall 4). Das zweite Fenster zeigt alle Filter nach dem Rendern. Im besten Fall sollte nur das Filter mit der Audiodatei hinzugekommen sein. (Bild "M2S-Meldung.jpg")
Ist M2S mit einer Audiodatei geöffnet (natürlich muß auf DirectShow Wiedergabe gestellt sein) und die Fehleranzeige war schon beim rendern des Graphen aktiv kann man sich den in M2S verwendeten Graphen mit Graphedit ansehen. Dazu in Graphedit unter "File/Connect to Remote Graph..." den Graph öffnen.

Folgende Filter wurden von mir verwendet:

AC3-Parser Filter - sollte auf jedem Rechner sein
Mpeg-I Stream Splitter - von Microsoft
Default DirectSound Device - stellt die Soundkarte dar
Moonlight Odio Dekoda (Version 1.23) - der eigendliche Decoder

Mit dieser Technik, von Micosoft eigentlich nur zum Testen vorgesehen, kann man Filter und Graphen verwenden die durch automatisches Rendern nie entstehen würden (Stichwort Meritwerte). So kann ich jetzt zB. keine AC3-Dateien mit dem Medienplayer abspielen aber mit M2S.

So nun qualmen mir die Finger.

Martin

Martin
07.03.2004, 21:05
Hier die restlichen Bilder.

skl
07.03.2004, 22:42
Wenn ihr Euch öfters mit den Decodern befasst, dann werdet ihr schnell feststellen, dass nicht alle Demultiplexer und Programme an den Decoder mit dem höchsten Merit halten.
Dann hilft nur eins: die überflüssigen zu deregistrieren. Mit dem FilterManager kann man das gut machen. Soll es aber mal richtig schnell gehen, dann führt einfach den angehängten Registryhack aus und ihr könnt das bequem über das Kontextmenü machen!
Dann habe ich noch einen Hinweis. Decoder wie der von Nvidia bekommen nicht alle nötigen Einträge wenn man sie einfach nur registriert. Bei der Installation von NVDVD werden noch andere Einträge geschrieben ohne die der Filter nicht korreckt funktioniert.
Zu guter letzt möchte ich alle warnen mit Directshow einfach sorglos zu spielen. Wir im DVBViewerTeam haben auch schon Erlebnisse gehabt, dass auf einmal gar nichts mehr wollte. Da half dann nur eine Systemzurücksetzung oder eine komplette Neuinstallation.
@Martin: Vielleicht wendest Du Dich mal an Griga. Der weiß mittlerweile wie man einen Filter anhand seines CLSID-Wertes anspricht. Wenn man ihn in den Optionen auswählen kann, dann braucht man sich die Mühe mit der ganzen Veränderung des MeritWertes nicht mehr zu machen.
Falls Du CLSID-Werte von Decodern brauchst, schick mir einfach ne kurze Info. Ich schick sie Dir dann zu.
Gruß
Steffen

Martin
08.03.2004, 17:46
Hallo,
Wenn ihr Euch öfters mit den Decodern befasst, dann werdet ihr schnell feststellen, dass nicht alle Demultiplexer und Programme an den Decoder mit dem höchsten Merit halten.
Und das aus gutem Grund. Ein Programm das immer auf die selben (seine eigenen) Filter zurückgreift ist sicher besser zu beherrschen.
Zu guter letzt möchte ich alle warnen mit Directshow einfach sorglos zu spielen.
Richtig, immer eine aktuelle Datensicherung zur Hand haben.

Die oben beschriebene Vorgehensweise ist dazu gedacht nicht an den Meritwerten herrumbastel zu müssen. Einfach einen funktionierenden Graphen basteln, oder meinen Graphen nachbauen, in M2S laden und fertig. Eine Auswahlmöglichkeit ist natürlich auch möglich (sicher auch Anwenderfreundlicher).

Martin

Charles
22.03.2004, 22:12
Hallo Martin,

sorry, aber ich bekomme es nicht hin, einen solchem Graphen zu erstellen. Vielleicht kannst Du mir ja auf die Sprünge helfen:

# Mit Graphedit einen Filter für AC3-Dateien erstellen. (Bild "AC3-Gaph.jpg")
# Die Verbindung zwischen den Filtern löschen. (Bild "Disconnect-Pins.jpg") Die Quelldatei löschen.

So weit geht's ja noch. Ich ziehe per Drag&Drop eine AC3-Datei in das Fenster, ein ähnliches Bild wird angezeigt, Verbindungen habe ich auch getrennt.

# Einen Graphen für MpegAudiodateien erstellen. (Bild "MPG-Audio.jpg") Der AC3-Parser bleibt jetzt übrig.

DAS kriege ich nicht hin! Wenn ich eine weitere Datei Datei in das Fenster ziehe, will der den vorherigen Graphen speichern oder verwerfen. Nach dem Einfügen der MP2 ist da dann nichts übrig!

Keine Ahnung wie Du das hinbekommst!

Charles

Martin
23.03.2004, 21:56
Hallo Charles,
DAS kriege ich nicht hin! Wenn ich eine weitere Datei Datei in das Fenster ziehe, will der den vorherigen Graphen speichern oder verwerfen. Nach dem Einfügen der MP2 ist da dann nichts übrig!
Die Datei mit "File/Render Media File..." öffnen.

Martin

HaraldS
23.03.2004, 23:10
HI,

habe zwar heute noch ein Thread dazu aufgemacht, aber nochmals hier die Frage. habe noch nicht ganz verstanden warum Dir Filter und Merrits so wichtig sind ! Natürlich wenn ein bestimmter Decoder ganz fehlt gibts Fehlermeldungen oder die Software stürzt manchmal ganz ab.

ABER:

Frage 1:
Haben denn die verwendeten Filter irgendwelche Auswirkungen auf das Endergebnis oder ist das Ergebnis eben nur Rohmaterial minus Schnitt ??

Frage 2:
Ich habe immer eine Testdatei um zu sehen welcher Filter denn nun aktuell verwandt werden (mit Graphedit von Microsoft) Ich habe manchmal den Eindruck, daß bei Graphedit die aktuell verwandten nicht angezeigt werden. Gibt es eine Möglichkeit zu sehen, welche Filter beim Abspielen eines Videos mit MPEG2Schnitt verwandt werden ?

Danke für die Infos.

Charles
23.03.2004, 23:11
Danke Martin!

heute kann ich's nicht mehr probieren, aber ich denke wohl ich schaffe das dann jetzt auch! :oops:

Schande über mich!

Charles

skl
24.03.2004, 23:03
Gibt es eine Möglichkeit zu sehen, welche Filter beim Abspielen eines Videos mit MPEG2Schnitt verwandt werden ? Manche Programme lassen eine Darstellung in Graphedit über Connect to Remoute graph zu.
Dann kann man sich einen laufenden Graph anzeigen lassen. Ansonsten gehts nur wie bereits beschrieben über Render Media File.

HaraldS
25.03.2004, 19:56
HI,

das sind aber wahrscheinlich nur Programme, die selbst über einen Graphen steuerbar sind. Aber gerade die anderen Programme sind ja das Problem, bei denen man nicht genau weiß was sie tun !

Martin
25.03.2004, 20:22
Hallo HaraldS und Andere,

ich kann natürlich nur für M2S sprechen. Viele Programme (DVD-Abspieler) bringen ihren eigenen Decoder-Filter mit und benutzen nur diesen, manche installieren diesen sogar ohne nach zu fragen an erster Stelle. Das bringt das System unter Umständen ganz schön durcheinander. Mal schnell ein Programm ausprobiert und schon ist es passiert. Deshalb habe ich die Möglichkeit mit Graphedit eingebaut. Das wird sicher noch weiter verbessert werden.
DirectShowfilter werden nur für die Audiowiedergabe benutzt (wenn sie eingeschaltet sind).
An den Video- und Audiodateien wird nichts verändert was die Qualität beeinflussen würde. Bei Audiodateien werden nur die Audioframes (jedes Audioframe ist für sich lebensfähig) neu zusammenkopiert.

Auszug aus dem ersten Beitrag:- Beim Öffnen einer Audiodatei und eingeschalteter Fehlermeldungen für Audiowiedergabe erscheinen 2 Meldungsfenster. Im Ersten stehen die Von der Graphdatei geladenen Filter (in meinem Fall 4). Das zweite Fenster zeigt alle Filter nach dem Rendern. Im besten Fall sollte nur das Filter mit der Audiodatei hinzugekommen sein. (Bild "M2S-Meldung.jpg")
- Ist M2S mit einer Audiodatei geöffnet (natürlich muß auf DirectShow Wiedergabe gestellt sein) und die Fehleranzeige war schon beim rendern des Graphen aktiv kann man sich den in M2S verwendeten Graphen mit Graphedit ansehen. Dazu in Graphedit unter "File/Connect to Remote Graph..." den Graph öffnen.
Ist vielleicht nicht ganz einfach erklärt, aber wenn man 3 mal gelesen hat versteht man es. :wink:

Martin

Cela
12.02.2009, 12:52
...Ist vielleicht nicht ganz einfach erklärt, aber wenn man 3 mal gelesen hat versteht man es. :wink:

Martin Wo finde ich diese wichtigen Informationen in der Hilfe?
Das Inhaltsverzeichnis der Hilfe hat mir nicht wirklich dabei geholfen. Habe mal wieder nicht den richtigen Durchblick.

Habe diese Information seit Jahren nicht mehr gebraucht, und folglich vergessen. Seitdem ich ffdshow in meinem Vista installierte, funktioniert das Abspielen von ac3 nicht mehr:
Automatisch erzeugter Graph:
ADTest.ac3 -> Ligos Mpeg Splitter -> ffdshow Audio Decoder -> Default DirectSound Device
und Abspielen funktioniert nicht.

Manuell erzeugter Graph:
ADTest.ac3 -> AC3 Parser Filter -> AC3Filter -> Default DirectSound Device
und und Abspielen funktioniert.

Kann man bei ffdshow irgendwas einstellen, dass man keinen eigenen Graph erzeugen muss und trotzdem in Mpeg2Schnitt nicht von ffdshow ausgebremst wird?

Gruß

Cela

P.S. Bin leider immer noch nicht dazu gekommen, auf die neue Weihnachts-Version umzusteigen.
Zu viele andere Baustellen: Vista, .WMV(VC1) Dateien (Internet streams mit Total Recorder Video Plug-in aufgenommen), H.264 TS (mit DVBViewer aufgenommen) annähernd so schneiden, wie mpeg2-TS (nach ProjectX) mit deinem einzigartig tollen Mpeg2Schnitt Programm.

Wenn es von M2S auch eine .wmv und eine h.264 Version gäbe!
Wäre fürs Erste mit Key Frame genauen Schnitten, die man mittels Schnittliste Audio-Synchronitäts-haltig zusammfenfügen kann, ohne weitere Effekte zufrieden. Weiß jemand dafür eine einfache Lösung?

Weiß jemand wie man eine .wmv-Datei in einen TS Container packen kann?

Martin
12.02.2009, 17:13
Wo finde ich diese wichtigen Informationen in der Hilfe?
Dialog Optionen -> Anzeige/Wiedergabe - http://www.mdienert.de/mpeg2schnitt/Forum/M2S-Hilfe/Optionen_Anzeige_Wiedergabe.html
einen bestimmten Audiofilter in M2S benutzen - http://www.mdienert.de/mpeg2schnitt/Forum/AudioFilter/M2SFiltergraph.htm

Kann man bei ffdshow irgendwas einstellen, dass man keinen eigenen Graph erzeugen muss und trotzdem in Mpeg2Schnitt nicht von ffdshow ausgebremst wird?
Den Meritwert des unliebsamen Codecs verkleinern und den des gewünschten Codecs vergößern. Vielleicht hilft es schon wenn der Ligos Mpeg Splitter nicht mehr verwendet wird.

Martin

gsmgrufti
12.02.2009, 18:55
Da Graphedit auch das Thema ist:
http://blog.monogram.sk/janos/tools/monogram-graphstudio/

MONOGRAM GraphStudio GraphStudio is a new project I have started to work on. It should be free and available as opensource under the GNU GPL license. The main reasons for this project were lot of cool features missing in GraphEdit tool. And of course, the fact that it’s not being developed as fast as one may need.


Also ich benutze den mit Vorliebe, ist aufgebaut wie Graphedit, funzt aber wesentlich besser

Cela
14.02.2009, 20:16
Dialog Optionen -> Anzeige/Wiedergabe - http://www.mdienert.de/mpeg2schnitt/Forum/M2S-Hilfe/Optionen_Anzeige_Wiedergabe.html
einen bestimmten Audiofilter in M2S benutzen - http://www.mdienert.de/mpeg2schnitt/Forum/AudioFilter/M2SFiltergraph.htmJa, wenn im ersten Link (dahin kam ich in der Hilfe), d.h. in der Hilfe, ein Link zu diesem Thema hier oder der zweite Link, zu Daywalkers how2do, angegeben wäre...
Nur ein Vorschlag. Oder habe ich das übersehen?


Den Meritwert des unliebsamen Codecs verkleinern und den des gewünschten Codecs vergößern. Vielleicht hilft es schon wenn der Ligos Mpeg Splitter nicht mehr verwendet wird.MartinDer Ligos Mpeg Splitter hat bereits den Wert 0x00000000 und mischt sich trotzdem ein.
Ebenso hat der AC3Filter einen deutlich höheren Merit als der ffdshow Audio Decoder.

GraphStudio verhält sich in meinem Fall genauso wie Graphedit. Die Merits pflege ich mit dem Radlight Filter Manager.

Das Thema beginnt zu Recht mit "Hallo DirectShowgeplagte "!

Gruß

Cela

akapuma
15.02.2009, 10:51
Der Ligos Mpeg Splitter hat bereits den Wert 0x00000000 und mischt sich trotzdem ein.

Ligos MPEG-Splitter?

Ja, sowas fängt man sich gern mit Codec-Packs ein. Codec-Packs greifen z.T. massivst in das Direct-Show-System ein. Deshalb: Finger weg!

Was nun, wenn es zu spät ist?

1. würde ich versuchen, den Merit auf 0x00000000 zu setzen (was ja schon geschehen ist).

2. Wenn 1. nicht klappt: Filter mit dem Radlight Filter Manager deregistrieren.

3. Wenn 1. und 2. nicht klappt: Filter (eine .ax-Datei) löschen, Papierkorb leeren und einen Regcleaner (z.B. TuneUp-Utilities-Demo) laufen lassen.

Gruß

akapuma

PS:
Wenn ein Codec-Pack schuld ist: wenn es einen Uninstaller hat das Codec-Pack deinstallieren.

Cela
15.02.2009, 11:48
Ligos MPEG-Splitter?
...2. Wenn 1. nicht klappt: Filter mit dem Radlight Filter Manager deregistrieren.Ja, deregistrieren hat geklappt. Nun erhalte ich, wie gewünscht, automatisch den Graphen mit "-> AC3 Parser Filter -> AC3Filter -> ".
Ligos MPEG-Splitter?
...Wenn ein Codec-Pack schuld ist: wenn es einen Uninstaller hat das Codec-Pack deinstallieren.Hab in letzter Zeit nur ffdshow installiert wegen TSPE (TS Packet Editor für h.264 TS), mit dem ich sehr zufrieden bin, und zwar auf Empfehlung des Authors in diesen Posts Post1 (http://forum.doom9.org/showthread.php?p=1230792#post1230792), Post2 (http://forum.doom9.org/showthread.php?p=1234832#post1234832), Post3 (http://forum.doom9.org/showthread.php?p=1236238#post1236238), usw. Ob ffdshow den Ligos Splitter bescherte, weiß ich aber nicht.

Danke, Akapuma, für die guten Tipps. :)

Gruß

Cela

akapuma
15.02.2009, 12:01
Ob ffdshow den Ligos Splitter bescherte, weiß ich aber nicht.Nein ffdshow (aktuell: ffdshow-tryouts (http://sourceforge.net/projects/ffdshow-tryout/)) ist sauber und eine ideale Alternative zu vielen verschiedenen Dekodern. Und der im zweiten Link genannte Haali Media Splitter (http://haali.cs.msu.ru/mkv/) ist auch was feines. Viel mehr braucht man an sich nicht.

Gruß

akapuma