Microsoft DirectShow Multimediaschnittstelle Video DVD MP3 Song

Slides:



Advertisements
Ähnliche Präsentationen
Audio & Videoformate Max Rennhofer.
Advertisements

SAMSON FDT/DTM - Intelligentes Management für Feldgeräte.
Voice over IP (VoIP).
Sichere Anbindung kleiner Netze ans Internet
Rechnernetze und verteilte Systeme (BSRvS II)
Datenbanken Einführung.
Neuerungen in PalmOS® 5 Florian Schulze (SS 2003).
Archivierung und Erschließung von Audio/Video-Material mit miless und MyCoRe F. Lützenkirchen Universitätsbibliothek.
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
BUS-Systeme (PCI) Allgemeines über BUS-Systeme Allgemeines zum PCI-Bus
Microsoft Windows 2000 Terminal Services
Alexander Au, Jonas Posniak
KS-Encodier-Server Marco Korrmann / Dominik Sommer 1 KS-Encodier-Server Karlsruhe B e g r ü ß u n g.
Java: Grundlagen der Sprache
Palm OS Project Martin Ochs Palm OS Project Inhalt Hardware Schnittstellen Die serielle Schnittstelle Entwicklungsumgebung Test-Programm Hardware-Test.
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
Virtuelle Forschungsumgebungen Hintergrundbeitrag: HTML5: Video Player und VideoJS Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung.
MyCoRe My Content Repository. Entstehung Seinen Ursprung hat MyCoRe in der MILESS- Software der Universität Essen (Dokumentenserversoftware). Benutzer.
Windows 98 Microsoft Windows 98 - Ein technischer Überblick Jörg Kramer University Support Center.
Präsentationen: Multimedia Video Audio Objekte (OLE) Steuerelemente Startseite.
Introducing the .NET Framework
Fli4l Der Ein-Disketten-Router von Sebastian Röhl von Sebastian Röhl.
Webstreaming Grundlagen
n4 Streaming Media System
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
Wie funktionniert das Musikklauen denn im Detail?
Mobile Gebäudeservicesteuerung Optimierung des Datentransfers im
Evaluierung des ITU-T.124 Telekonferenzstandards
Generelles POVs müssen immer lizenziert werden
Videoclip in PowerPoint 2010
MS Excel, Open-/LibreOffice Calc Die Menüs I Office-Logo (Excel2007) bzw. Datei (andere): die Standard-Datei- und Druckoperationen; bei MS Excel hier auch.
Weltweite Kommunikation mit Exchange Server über das Internet
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
Präsentation von Alexander Schönfeld
Was ist Multimedia? Multimedia = Nutzungsmöglichkeit verschiedener Medien (Text, Bild, Ton) über ein Gerät (PC) Beispiele Abspielen von Film- oder Musik-CDs.
Webservice Grundlagen
DYNTEST –Control Systems -Probleme beim Auslesen-
Durchsuchen, Suchen, Abonnieren Fotos, Musik, Media Informations- management VisualierungKlarheit.
Tobias Kluge: FAME Middleware / Karlsruhe / The FAME project – Middleware.
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Camera, Lights, Action… Dirk Primbs Developer Evangelist
Zeit:Aktion: 08:30Begrüßung, Organisation 08:45Einführung - Was heißt OPC - OLE for Process Control --> Folie - OPC definiert eine offene Schnittstelle,
Infotain Multiframe Informationsdisplay. Was ist Infotain ? Infotain stellt eine neue Art der Informations- und Werbefläche dar Infotain ermöglicht es.
Liske Informationsmanagementsysteme 2005 Informationen managen Strategisches Kalkül und technische Wirksamkeit.
Oliver Spritzendorfer Thomas Fekete
Zauberwort Metadaten Elementares Handwerkszeug des Content- und Wissensmanagement.
MP3 Davis Balija 1AHWIM 2012/2013. Inhaltsverzeichnis Was ist MP3 3 Sind MP3 Datein legal 4 Geschichte des MP3 5 Was ist streaming 6 Womit kann man MP3`s.
Embedded Linux Portierung auf mobiles Datenerfassungsterminal
Quellen: Internet INTRANET Ausarbeitung von Sven Strasser und Sascha Aufderheide im Modul Netzwerktechnik, Klasse INBS Mai 2003.
EDV-Anwendungen im Archivwesen II KU 2WS WS07.
MSDN TechTalk Anwendungen integrieren in Microsoft Dynamics CRM 4.0.
IPv6 Von Judith Weerda Diese Vorlage kann als Ausgangspunkt für die Präsentation von Schulungsmaterialien in einer Gruppensitzung dienen. Abschnitte.
Multimedia in Java Thomas Witschel, Kerstin Steinert & Erik Reinhard.
Podcast Transcriber Andreas Haslinger Claus Vogelmann 1 Projekt im Rahmen der Lehrveranstaltung Mobile und ubiquitäre Systeme.
Podcast Transcriber Andreas Haslinger Claus Vogelmann 1 Projekt im Rahmen der Lehrveranstaltung Mobile und ubiquitäre Systeme.
„Kein Unternehmen besitzt so viel Zeit und Mittel zum Lernen aus eigenen Fehlern” James Harrington.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14.
AUDIO im WEB HTML & AUDIO WEB_0302 WEBDESIGN MODUL 03 h.huetter 1 Sound-Dateien können, ebenso wie Video-Dateien, auf mehrere Arten in HTML-Dateien integriert.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Aufbau eines Betriebssystems
Analyse und Umsetzung einer Filter-basierten Paketverarbeitungsmaschine für IP-Netzwerke Lehrstuhl für Systemarchitektur und Betriebssysteme Forschungs-
Microsoft Silverlight Autor: Christian Pirker. Inhalt Einführung Silverlight Einführung XAML Silverlight 1.0 und 1.1 Silverlight 2.0 Silverlight 3.0 Ausblick.
Einführung in Powerpoint XP Universität Leipzig Herder-Institut Video und Multimedia im Unterricht: DaF Dozent: Hr. Prof. Dr. E. Tschirner.
Einführung in PowerPoint Zum Seminar „Video und Multimedia im Unterricht DaF“ (Theorie und Praxis der Lehr- und Lernmittel) bei Prof. Dr. E. Tschirner.
Mp3 und co. – Audiobearbeitung am PC. Vorteile Audio am PC Audiofiles lassen sich einfacher verwalten und weiter verarbeiten als Kassettenaufnahmen.
Basiskomponente Bibliothek Informationsveranstaltung
 Präsentation transkript:

Microsoft DirectShow Multimediaschnittstelle Video DVD MP3 Song USB WebCam Firewire Videokamera Windows Media Player PC-Spiele Intro Pinnacle Studio - DirectShow für Verarbeitung von Multimediadaten unter Windows - DirectShow als fester Bestandteil im Betriebssystem integriert Microsoft DirectShow

Gliederung Grundlagen 1.1 VFW 1.2 WDM, KS, WMF 1.3 DirectShow - DirectX 1.4 Aufgaben von DirectShow Architektur 2.1 COM - kurze Einführung 2.2 Filter Graph Manager Filter Graphen 3.1 Erstellung von Filter Graphen 3.2 Filter-Verbindungsprotokolle 3.3 Datenfluss-Protokolle 3.4 Synchronisation Beispiele Zusammenfassung

1. Entwicklung von DirectShow Warum wurde DirectShow entwickelt? 1. 1 VFW (Video for Windows) 1992 als Addon für Windows 3.1 eingeführt Aufgaben: Abspielen / Aufnahme / Kompression / Dekompression von Video-/Audiodaten Anfangs 16 Bit Architektur; mittlerweile teilweise 32 Bit. AVI Container Dateiformat Nachteile: VFW-Treiber: separate Treiber für WinNT/Win9x notwendig, keine standardisierten gerätespezifische Kommunikationsschnittstellen (z.B.: fehlende TVTuner Unterstützung), Treibermodell inkonsistent Unterstützung weniger Dateiformate nur teilweise 32 Bit Architektur keine Synchronisationsmechanismen AVI Container Dateiformat: begrenzt auf 2 GB, nicht streamingfähig, Synchronisation schwierig VFW keine MPEG Unterstützung Neue Multimedia-/Treiberarchitektur und Dateiformat

1. Entwicklung von DirectShow 1.2 WDM, KS, WMF WDM (Windows Driver Model): Kompatibilität innerhalb der Windows-Betriebssysteme volle 32 Bit Unterstützung standardisierte Kommunikationsschnittstellen (Bsp.: TV-Tuner Unterstützung) KS (Kernel Streaming): Filter Architektur (Knoten, Pins) Datenaustausch innerhalb des Kernel Mode:  keine Kernel-/User Mode Umschaltung  geringe Latenzzeiten  keine Datenkopie in Systemspeicher WMF (Windows Media Format): Kompression/Dekompression von Video/Audio mit MS MPEG4 Video/Audio Codec sowie MS Video Speech Codec. Streaming von Video-/Audiodaten über Netzwerk (geringe Netzwerkbandbreite) ASF Container Dateiformat (*.wmv, *.wma, *.asf): streamingfähig, Synchronisationsmechanismen Dateigröße nicht begrenzt proprietäres Dateiformat  vor ISO MPEG4 Standard entwickelt  QuickTime Movie (MOV Format) als MPEG4 Standard vorgesehen

1. Entwicklung von DirectShow 1.3 DirectShow - DirectX DirectShow seit 1996 Bestandteil von DirectX DirectX: - Sammlung von Komponenten für verschiedene multimediale Bereiche - Schnittstellen für effiziente Kommunikation von Software mit Hardware - Hardwareunabhängige Funktionsbibliothek (bei fehlender Hardware- unterstützung  Verwendung von Softwareemulationen (optimierte Softwareroutinen mittels Assemblercode)

1. Entwicklung von DirectShow 1.4 Aufgaben von DirectShow 1. Hauptaufgaben DES: basiert auf DirectShow Architektur API für Videobearbeitung (Video-/Audioschnitt) Anordnung von Video-/Audiosamples in Timeline 2. DES (DirectShow Editing Service)

2. Architektur 2 Hauptbestandteile: + FilterGraph Manager FilterGraph-Manager als Basis für Filtererstellung, Filterverbindung,, Steuerung des FilterGraphen, Events  später noch genauer erklärt Transform Filter können zusätzlich sein: Auflösungen ändern, Helligkeit, Kontrast ändern, Stereo, Chorus, auf Audiodaten legen  Effekte auf Audio/Videodaten legen Filter sind Knoten (eng. Nodes) und werden über Pins miteinander verbunden Filter können mehrere Pins (input, output) haben SourceFilter hat nur Output Pins TransformFilter hat Input, Output Pins Rendering Filter hat nur InputPins DMO (DirectX® Media Objects) Filter: Hauptsächlich benutzt für Video oder Audio Encoders, Decoders and Effekte. DirectShow unterstützt DMO über Wrapper Filter DMOs sind ähnlich der DirectShow Filter (aber wesentlich kleiner, da weniger Funktionalität unterstützt wird) Wesentlich einfachere API (einfacher zu implementieren) (keine Threadsynchronisation oder Buffer Management notwendig) In the default DMO model, the client allocates separate input buffers and output buffers. It fills the input buffers with data and delivers them to the DMO, and the DMO writes new data into the output buffers. Optionally, a DMO can support "in-place" processing. With in-place processing, the DMO writes the output directly into the input buffer, over the original data. In-place processing eliminates the need for separate buffers. On the other hand, it alters the original data, which may not be acceptable for some applications. Können auch direkt von Anwendungen benutzt werden (kein FilterGraph Manager o.ä notwendig) Mehrfache Eingänge sowie Ausgänge Einheitliches Kommunikationsmodel Übergangseffekt Filter für Timeline DES

2. Architektur Bei Abspielproblemen von Videos o.ä. kann man GraphEdit für Fehlersuche verwenden Verwendung von Splitter Filtern bei MPG und AVI aber nicht bei ASF Viele Standardfilter verfügbar, aus WWW können viele weitere Filter heruntergeladen werden.

Programmablauf für DirectShow Applikationen 2. Architektur Programmablauf für DirectShow Applikationen Applikation - jede DirectShow-Anwendung muss 3 Schritte absolvieren Play() Methode Stop Event Filter Graph Manager Filter Graph Transform Filter (Bsp.: Video Decod.) Rendering Filter (Bsp.: Video Render) Source Filter (Bsp.: File Source) Transform Filter (Bsp.: AVI Parser) Transform Filter (Bsp.: Audio Decod.) Rendering Filter (Bsp.: Audio Render)

2. Architektur 2.1 COM - kurze Einführung DirectShow sowie alle anderen DirectX-Komponenten bauen auf dieser Technologie auf. Ziel von COM: Komponentenbasierte Softwareentwicklung, welche die Basis komplexer Software heutzutage darstellt Beschreibung des Aufbaus von Komponenten sowie der Kommunikation unterhalb der Komponenten Wiederverwendbarkeit von Komponenten Beispiel: Email-Programm und Textverarbeitung benötigen Rechtschreib-/Grammatikprüfung Sonstiges: Interfaces dürfen nicht geändert werden. Für neue Funktionen muss Interface2 eingeführt werden.  Deswegen oft Interface2 zu sehen AddRef Speicherverwaltung Jede Schnittstelle, COM-Objekt müssen von IUnknown erben Auffinden einer Klasse und ihrer Schnittstellen im System erfolgt durch zugeordnete Globally Unique Identifier (GUID) speziell ClassID (CLSID) für Klassen, InterfaceID (IID) für Schnittstellen alle CLSIDs sind zentral in der Registrierung des Client gesammelt und weisen durch Pfadangaben zur entsprechenden Komponente Client erhält von COM nach der Objektinstantiierung automatisch einen Zeiger auf eine Standardschnittstelle des Objekts

Zentrales Objekt von DirectShow 2. Architektur 2.2 Filter Graph Manager Zentrales Objekt von DirectShow Erstellen und Kontrolle von Filter Graphen Synchronisation Ereigniss-Behandlung über Ereigniss-Warteschlange (z.B.: Filter Status, Play…)

3.1 Erstellung von Filter Graphen IGraphBuilder (Filter Graph Manager)::RenderFile SourceFilter einfügen; IGraphBuilder::Render IGraphBuilder (Filter Graph Manager)::Render Rendering Filter einfügen; IGraphBuilder::Connect IGraphBuilder (Filter Graph Manager)::Connect - Direkte Verbindung der Pins probieren - Filter aus dem Cache probieren - vorhandene Filter im Filter Graphen probieren - Filter über Windows-Registrierung suchen und probieren Filter in Kategorien unterteilt (Source Filter, Transform Filter, Rendering Filter) Jeder Filter wird mit Major-/SubType und Prioritätswert in Registry eingetragen Abbruch nach bestimmter Anzahl von Versuchen  kein Deadlock Vollautomatisch: GraphEdit: „Render MediaFile(Audio.wav)“ Button GraphEdit: Vollautomatisch.grf laden und anhand IGraphBuilder erklären Halbautomatisch: 1) - GraphEdit: „Render MediaFile(Video.mov)“ Button - Manuelles ändern des Graphen (ImageEffects einfügen) 2) - (ImageEffects einfügen) - GraphEdit: „Render MediaFile(Video.mov)“ Button Manuell: - GraphEdit: Manuell.grf laden Dynamic Graph Building ????

3.2 Filter-Verbindungsprotokoll (MediaType Vermittlung) 3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (MediaType Vermittlung) 3 Schritte notwendig, wenn 2 Filter miteinander verbunden werden sollen 1. Schritt: Medientyp aushandeln

3.2 Filter-Verbindungsprotokoll (Transport Vermittlung) 3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (Transport Vermittlung) 2. Schritt: Transportprotokoll zwischen zwei Filtern aushandeln Push Model: Häufigste Transportart Pull Model: - Nur bei Source/Parser Filtern verwendet Kernel Streaming: - Nur Steuerdaten über Pins transportieren

3.2 Filter-Verbindungsprotokoll (Speicherverwaltung Vermittlung) 3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (Speicherverwaltung Vermittlung) - 3. Schritt: Speicherverwaltung immer zwischen zwei Filtern aushandeln

3.3 Datenfluss (Streaming Protokoll) 3. Filter Graphen 3.3 Datenfluss (Streaming Protokoll) Source Filter Transform Filter Rendering Filter FillBuffer() Transform TransInPlace Filter: + Allocator muss dergleiche sein GetBuffer() Release() GetBuffer() Memory Allocator 1 Memory Allocator 2

3.3 Datenfluss (Control Protokoll) 3. Filter Graphen 3.3 Datenfluss (Control Protokoll) Von Render zu Source Filter sinnvoll, weil + keine Samples verloren gehen + FilterGraph vor Deadlocks schützen Pause-Zustand hauptsächlich für: - Datenpufferung, um schnell starten zu können Pause-Zustand: Initialisierungsphase für Datenstreaming (z.B.: Threadgenerierung) Datenpufferung  jeder Rendering Filter erhält ein Media Sample  schnellere Reaktion auf „Run“ – Befehl Source-/Transform-Filter ignorieren Zustandsänderung Pause/Running  Ausnahme „Live Source Filter“

3.3 Datenfluss (Ausgewählte Protokolle) 3. Filter Graphen 3.3 Datenfluss (Ausgewählte Protokolle) Seeking/Flushing: EndOfStream:

3.4 Synchronisation (Grundlagen) 3. Filter Graphen 3.4 Synchronisation (Grundlagen) Zeitgeber (ReferenceClock COM-Objekt); Zugriff über IReferenceClock Interface Pro Filter Graph eine ReferenceClock  Synchronisation aller Filter im Filter Graph mit ReferenceClock - Audio knacksen eher störend als Video ruckeln aber: Reference Clock nicht nur an Audio Renderer möglich. timeEnd notwendig für beispielsweise AVI-Splitter: dieser erkennet Framerate am ersten erhaltenen validen TimeStamp (timeend-timestart) Stream time is often called "relative reference time" since, by definition, stream time is equivalent to reference time minus start time when the graph is running.

3.4 Synchronisation (Auswahl der ReferenceClock) 3. Filter Graphen 3.4 Synchronisation (Auswahl der ReferenceClock) Manuelle ReferenceClock-Auswahl: Automatische ReferenceClock-Auswahl: Filter Graph Manager sucht ReferenceClock-Implementationen in Filtern in Upstream- Reihenfolge (beginnend bei Rendering Filter) erste gefundene ReferenceClock (in Filter) wird übernommen keine ReferenceClock gefunden  Filter Graph Manager stellt interne ReferenceClock auf Basis der System-Uhrzeit zur Verfügung

4. Beispiele //Schnittstellenzeiger definieren IGraphBuilder *pGraph; IMediaControl *pMediaControl; IMediaEvent *pEvent; CoInitialize(NULL); //COM-Laufzeitumgebung initialisieren //Filter Graph Manager Objekt erstellen+IGraphBuilder Schnittstellenzeiger erzeugen CoCreateInstance(CLSID_FilterGraph, …, …,IID_IGraphBuilder, (void **)&pGraph); pGraph->RenderFile(„Beispiel.mpg“, NULL); //Graph vollautomatisch erstellen pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl); pMediaControl->Run(); //Graph starten //Warten auf Beendigung des Graphen pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); long evCode; pEvent->WaitForCompletion(INFINITE, &evCode); pMediaControl->Release(); pEvent->Release(); pGraph->Release(); //Schnittstellenzeiger freigeben CoUninitialize(); //COM-Laufzeitumgebung freigeben FilterGraph in Software kann durch GraphEdit sichtbar gemacht werden

Zusammenfassung Quellen Was ist DirectShow ? (Entstehung, Hauptaufgaben) Architektur Filter Graph Manager als Hauptbestandteil von DirectShow Filter Graphen: Erstellung, Verbindungsprotokolle, Datenflussprotokolle, Buffer-Management, Synchronisation Quellen DirectShow SDK Dokumentation Programming Microsoft DirectShow for Digital Video and Television / Mark D. Pesce. Microsoft MSDN Bibliothek http://www.gdcl.co.uk/ http://www.jmcgowan.com/avi.html Suchmaschinen (Google) / Internet Vorteile Nachteile gut dokumentiert modulare Struktur wiederverwendbare Komponenten (Filter) abhängig von Microsoft-Betriebssystemen Windows-Programmierung notwendig Was fehlt noch: Directshow Editing Service (Videobearbeitung) Filtererstellung