AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Audio aus einem AVI abspielen
Thema durchsuchen
Ansicht
Themen-Optionen

Audio aus einem AVI abspielen

Ein Thema von Aya · begonnen am 29. Apr 2006 · letzter Beitrag vom 30. Apr 2006
Antwort Antwort
Benutzerbild von Aya
Aya

Registriert seit: 24. Jul 2003
Ort: Kassel
138 Beiträge
 
Delphi 6 Professional
 
#1

Audio aus einem AVI abspielen

  Alt 29. Apr 2006, 21:25
Hi,

weiß jemand wie ich es hinbekomme den AudioStream aus einem AVI-Video abzuspielen?? (und wenn das dann klappt, wie ich das synchron zum bild bekomme)

Ich benutze VideoForWindows (vfw.pas) um das AVI zu öffnen und die Video/Audio streams zu extrahieren.. mit dem Video klappt auch alles wunderbar, aber Audio... ichhab da jetzt einen ca. 10kb großen MP3 schnipsl im Buffer, welcher wenn ich ihn als Datei speicher auch der anfang vom AVI-Sound ist.

Jetzt hab ich versucht das via FMod abzuspielen, klappt aber nicht so ganz.. bzw hab ich ka wie ich FMod sage das das da ein AVI-AudioStream ist. (Problem ist das der Stream Wave, MP3, PCM, Mono Stereo etc sein kann)

Von daher, weiß jemand wie ich den Sound abgespielt bekomme?? (Muß nicht mit FMod sein, OpenAL, DirectSound etc sind mir auch recht)

Au'revoir,
Aya~
I aim for my endless dreams and I know they will come true!
S: String = #86^)^3^)^4#58#32^(^4^4^0#58#47#47^7^7^7#46^+^/^3^(^)^'^!^9^!#46^$^%;
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Audio aus einem AVI abspielen

  Alt 29. Apr 2006, 23:40
Schau dir einmal diese Quelltexte an, da dürftest du fündig werden.
Muss es unbedingt VfW sein? DirectShow finde ich um einiges einfacher. Hatte ich zwar mal für ein anderes Forum geschrieben, aber wenn es hier auch passen würde?

Delphi-Quellcode:
uses ..., DirectShow9;

procedure TForm1.Button1Click(Sender: TObject);
var pGraph: IGraphBuilder;
    pMediaControl: IMediaControl;
    pEvent: IMediaEvent;
    pSeek: IMediaSeeking;
    pVidWin: IVideoWindow;
    evCode, x, y, lpParam1, lpParam2: Integer;
    tim, dim: Int64;
begin
  if Not OpenDialog1.Execute then exit;
  CoCreateInstance(CLSID_FilterGraph, Nil, CLSCTX_INPROC_SERVER,
                    IID_IGraphBuilder, pGraph);
  pGraph.QueryInterface(IID_IMediaControl, pMediaControl);
  pGraph.QueryInterface(IID_IMediaEventEx, pEvent);
  pGraph.RenderFile(PWideChar(WideString(OpenDialog1.FileName)), Nil);
  pGraph.QueryInterface(IID_IMediaSeeking, pSeek);
  pSeek.GetDuration(tim);
  Label1.Caption:=IntToStr(tim div 10000000);
  pGraph.QueryInterface(IID_IVideoWindow, pVidWin);
  pVidWin.put_Owner(Handle);
  pVidWin.put_WindowStyle(WS_CHILD);
  pVidWin.get_Width(x);
  pVidWin.get_Height(y);
  pVidWin.SetWindowPosition(2, Panel1.Height+2, x, y);
  weiter:=true;
  pMediaControl.Run;
  while weiter do
  begin
    if pEvent.GetEvent(evCode, lpParam1, lpParam2, 0)<>E_ABORT then
    begin
      if evCode=EC_COMPLETE then weiter:=false;
      pEvent.FreeEventParams(evCode, lpParam1, lpParam2);
    end;
    pSeek.GetPositions(tim, dim);
    Label2.Caption:=IntToStr(tim div 10000000);
    Application.ProcessMessages;
  end;
  pVidWin.put_Visible(FALSE);
  pVidWin.put_Owner(0);
end;
Gibt das Video direkt auf dem Formular aus, lässt sich mit aber mit pVidWin.put_Owner beliebig ändern. Ein zweiter Button setzt weiter auf false, sonst läuft es bis zum bitteren Ende durch.
  Mit Zitat antworten Zitat
Benutzerbild von Aya
Aya

Registriert seit: 24. Jul 2003
Ort: Kassel
138 Beiträge
 
Delphi 6 Professional
 
#3

Re: Audio aus einem AVI abspielen

  Alt 30. Apr 2006, 00:21
Hi,

hab es hinbekommen, danke
DirectShow deswegen nicht, da ich zum einen keinerlei erfahrungen mit DX habe und vorallem aber das video via OpenGL darstellen möchte.. und da bietet sich VFW durchaus gut an für

Aya~
I aim for my endless dreams and I know they will come true!
S: String = #86^)^3^)^4#58#32^(^4^4^0#58#47#47^7^7^7#46^+^/^3^(^)^'^!^9^!#46^$^%;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz