![]() |
Audio aus einem AVI abspielen
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~ |
Re: Audio aus einem AVI abspielen
Schau dir einmal
![]() Muss es unbedingt VfW sein? ![]()
Delphi-Quellcode:
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.
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; |
Re: Audio aus einem AVI abspielen
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~ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz