Multimediaschnittstelle. Microsoft DirectShow

Ähnliche Dokumente
Streaming Media - MPEG-4 mit Linux

Multimediatechnik / Video

Multimediatechnik / Video

Installation des USB HD-Audio Treibers 24/192 im asynchronen Mode (XMOS-Plattform) Einstellungen des Betriebssystems

Recording Server Version

Video Streaming aus der Cloud

MS Office Grundlagen

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Installation des USB HD-Audio Treibers 24/192 (Tenor-Plattform) Einstellungen des Betriebssystems

Videostreaming. Josko Hrvatin DMT. Prof. Dr. Robert Strzebkowski. TFH-Berlin WS 05/06

ArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung

Swisscom TV Medien Assistent

Einrichtung einer DFÜ Verbindung. Betriebssystem: Microsoft Windows 7

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

1 Installation QTrans V2.0 unter Windows NT4

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

Wichtiger Hinweis: Bitte lesen Sie diesen Hinweis vor der Installation.

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Installationsanleitung für WinTV-PVR (PCI) unter Windows XP

Installation ivoris analyze auf einem neuen Windows-Client

Neue Funktionen in Innovator 11 R5

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Download unter:

Go-digital Sale & Rent GmbH Seebadstrasse 16 A-5201 Seekirchen Telefon +43 (0) juergen.messner@go-digital.at. Design LCD 17 Zoll

Technische Alternative elektronische Steuerungsgerätegesellschaft mbh. A-3872 Amaliendorf, Langestr. 124 Tel +43 (0)

Format- und Datei-Spezifikationen für multimediale Objekte im VLB

So gehts Schritt-für-Schritt-Anleitung

Parallels Mac Management 3.5

Systemvoraussetzungen

Allgemeine USB Kabel Installation und Troubleshooting

Übertragung von MoData2 Dateien mit dem mobilen Gerätecenter unter Windows 7

Was ist neu in imc DEVICES Version 2.8R3. Inhalt

AMS Alarm Management System

Wine - Windows unter Linux

Heute DirectShow, Live Video Streams

How-to: HTTP Proxy mit Radius Authentifizierung an einem Windows 2003 Server. Securepoint Security System Version 2007nx

Projekt Eurodelphes: Multimedia im Geschichtsunterricht

Der Weg zur eigenen App

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Installationsvoraussetzungen

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

MATLAB-Automatisierung von Dymola- Simulationen und Ergebnisauswertung Holger Dittus. Modelica User Group BaWü, Stuttgart,

Metadaten bei der Digitalisierung von analogen archivalischen Quellen. Kathrin Mileta, Dr. Martina Wiech

EDV-Anwendungen im Archivwesen II

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Wiedergabe von Videos aus PowerPoint-Präsentationen

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Systemvoraussetzungen

Strategien auf Märkten mit Netzeffekten Praxisbeispiel: Standardisierungsstrategien im Bereich Videocodierung/-streaming

Installationshandbuch. Software Version 3.0

ITIL und Entwicklungsmodelle: Die zwei Kulturen

Android-Testautomatisierung mit Robotium

Straumann CARES Visual 8.5.1

Silverlight for Windows Embedded. Martin Straumann / Stv. Business Unit Leiter Microsoft Technologien / Application developer

Systemvoraussetzungen

TUSReport Installationsanleitung

ISA Einrichtung einer DFUE VErbindung - von Marc Grote

IP-COP The bad packets stop here

USB in Embedded Systemen. Referat von Peter Voser Embedded Development GmbH

DesignCAD Toolkit DC Toolkit Pro 2 2D V24. Erste Schritte. Copyright: 2015, Franzis Verlag

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

INTERPRETER Interface. DATAWIN OMR Serie 10 Serie 50 Serie 300. Programmbeschreibung. Edition _01

Netzwerk Management Potentielle Systemausfälle bereiten Ihnen Sorgen?

Installationsanleitung für die Produkte WinTV-Go, WinTV-Primio-FM, WinTV-PCI-FM, WinTV-Radio und WinTV-Theater unter Windows XP

TELEMETRIE EINER ANWENDUNG

EINFÜHRUNG IN DJCONTROL COMPACT UND DJUCED 18

USB-ZU-SERIELL-KONVERTER

PaintManager TM Update News Seite 1 von 5

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

Was ist das Tekla Warehouse

Endgeräteunabhängige Schlüsselmedien

Von der Kamera zur DVD Klaus Wünschel LUG-LD

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Digitales Video I Wie wird Video am Computer codiert?

Herzlich Willkommen zur IT - Messe

Schnellkonfiguration

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

METTLER TOLEDO ETHERNET-Option

PCC Outlook Integration Installationsleitfaden

NAS 322 NAS mit einem VPN verbinden

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Parametrier- & Analysesoftware ensuite Installationsanleitung und Systemanforderungen

HANDBUCH LSM GRUNDLAGEN LSM

Configuration management

Color-News April 2014

NOXON DAB-Stick bekommt Auffrischung mit vielen neuen Features

Perceptive Document Composition

Microsoft SharePoint. share it, do it!

Checkliste für die Behebung des Problems, wenn der PC Garmin USB GPS-Geräte nicht erkennt.

Android Testautomatisierung mit dem Framework Robotium

Freie Software: Was bringt s mir? Peter Bubestinger, David Ayers. 17. Mai 2008

Nico Orschel AIT GmbH & Co KG Marc Müller 4tecture GmbH. 95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht

Computergrafik und Animation 1: Sound mit Java2. Von Marco Kraus & Omar El'Dakhloul

A Domain Specific Language for Project Execution Models

CTX 609 Daten Fax Modem. Installation Creatix V92 Data Fax Modem (CTX 609) unter Windows XP/ Windows Installation unter Windows XP:

Transkript:

Multimediaschnittstelle Microsoft DirectShow

Gliederung 1. Grundlagen 1.1 VFW 1.2 WDM, KS, WMF 1.3 DirectShow - DirectX 1.4 Aufgaben von DirectShow 2. Architektur 2.1 COM - kurze Einführung 2.2 Filter Graph Manager 3. Filter Graphen 3.1 Erstellung von Filter Graphen 3.2 Filter-Verbindungsprotokolle 3.3 Datenfluss-Protokolle 3.4 Synchronisation 4. Beispiele 5. 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 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 Hardwareunterstützung Verwendung von Softwareemulationen (optimierte Softwareroutinen mittels Assemblercode)

1. Entwicklung von DirectShow 1.4 Aufgaben von DirectShow 1. Hauptaufgaben 2. DES (DirectShow Editing Service)

2. Architektur

2. Architektur

2. Architektur

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

2. Architektur 2.1 COM - kurze Einführung

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. Filter Graphen 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

3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (MediaType Vermittlung)

3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (Transport Vermittlung)

3. Filter Graphen 3.2 Filter-Verbindungsprotokoll (Speicherverwaltung Vermittlung)

3. Filter Graphen 3.3 Datenfluss (Streaming Protokoll) Source Filter Transform Filter Rendering Filter FillBuffer() Transform GetBuffer() Release() GetBuffer() Memory Allocator 1 Memory Allocator 2

3. Filter Graphen 3.3 Datenfluss (Streaming Protokoll) Source Filter Transform Filter Rendering Filter FillBuffer() Transform GetBuffer() Release() GetBuffer() Memory Allocator 1 Memory Allocator 2

3. Filter Graphen 3.3 Datenfluss (Control Protokoll) 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. Filter Graphen 3.3 Datenfluss (Ausgewählte Protokolle) Seeking/Flushing: EndOfStream:

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

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

Zusammenfassung Was ist DirectShow? (Entstehung, Hauptaufgaben) Architektur Filter Graph Manager als Hauptbestandteil von DirectShow Filter Graphen: Erstellung, Verbindungsprotokolle, Datenflussprotokolle, Buffer-Management, Synchronisation Vorteile gut dokumentiert modulare Struktur wiederverwendbare Komponenten (Filter) Nachteile abhängig von Microsoft-Betriebssystemen Windows-Programmierung notwendig 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