MovieBefehle / Library

Anfängerfragen zum Programmieren mit PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

MovieBefehle / Library

Beitrag von a14xerus »

Hi Leute, ich bräuchte mal eine Library, eine *.pb(i) zum includen, eine dll oder ähnliches mit Moviebefehlen.
Sagt mir jetzt nich.. ja nehm doch
loadmovie() oder playmovie() ...
ich weiß selber das PB movie befehle hat.. aber die sind eher für mgp und avi... mp3 geht damit auch nicht so gut (in verbindung mit frames und so...)

ich habe über die hilfe schon ein paar sachen gefunden, wie zum beispiel "fmod.dll" , aber nie zusammenhängend eine Lib und eine Documentation dazu....
[edit]zu fmod.dll habe ich jetzt die doc gefunden[/edit]

Vorallem will ich am besten unabhängig von den installierten codecs sein.. soweit es geht.. und möglichst viele sound und movie dateien abspielen können

danke im voraus

PS.: wenn ihr wollt reicht auch link zu nem thread.. aber über antworten würde ich mich schon freuen
Zuletzt geändert von a14xerus am 19.07.2006 21:02, insgesamt 1-mal geändert.
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Also die Moviebefehle sind doch sehr gut...

Mp3 gehen auch sehr gut bei mir...


Und die Library kommt sogar mit 6 GB AVIs sehr gut klar.

:?
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

ja ich will heri auch nicht drüber philosophieren wie gut die befehle sind.. aber trotzdem möchte cih gerne eine alternative

PS: ich meinte, das die movie befehle am besten mit mpg und avi zurecht kommen
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Beitrag von inc. »

ich weiß selber das PB movie befehle hat.. aber die sind eher für mgp und avi... mp3 geht damit auch nicht so gut (in verbindung mit frames und so...)
? Die PB Movielibrary nutzt die normale Directshow Systemroutinen via ->Renderfile(). Damits mit mp3s klappt, musst du das Movieobject dazu zwingen den timer in "Zeit" und nicht in "Frames" zu arbeiten:

Code: Alles auswählen

Structure PB_StructureMedia
  Media.IGraphBuilder
  MediaControl.IMediaControl
  MediaEvent.IMediaEventEx
  Window.IVideoWindow
  Audio.IBasicAudio
  Video.IBasicVideo
  MediaSeeking.IMediaSeeking
  state.l
EndStructure

InitMovie()

*p.PB_StructureMedia = LoadMovie(No, szPath)
If *p
  *p\MediaSeeking\SetTimeFormat(?TIME_FORMAT_MEDIA_TIME)
EndIf 

DataSection ;{
  TIME_FORMAT_MEDIA_TIME:
  Data.l $7B785574
  Data.w $8C82, $11CF
  Data.b $BC, $0C, $00, $AA, $00, $AC, $74, $F6
EndDataSection ;}
Musst nur aufpassen, die Zeit/Länge ist jetzt glaube ich in Nanosekunden gemessen oder gar noch hochaufgelöster, das musst du in den Routinen sodann mit einkalkulieren.
Die aktuelle Zeit entnimmst du dann via

Code: Alles auswählen

*p\MediaSeeking\GetCurrentPosition(@pos.q)
Die Movie bzw. Dshow Routinen splitten und dekodieren alles, was als Filter im System registriert ist, also Avi, mpeg, mpeg2, mp4, aac, ac3 etc etc etc etc etc.

Ansonsten mit MCI, Libavcodec (viel Spass) oder Fmod etc. fummeln.
Hier gibts die OOP Option für PureBasic.
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

Interessant! Woher weiss man sowas? Kann man damit auch MovieVolume, MovieSeek und MovieState ersetzen, während das Movie auf ein Sprite gerendert wird. Dann funktionieren die nämlich nicht...

Sven
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Beitrag von inc. »

Sven hat geschrieben:Interessant! Woher weiss man sowas? Kann man damit auch MovieVolume, MovieSeek und MovieState ersetzen
Ja:
Audio: http://msdn.microsoft.com/library/defau ... erface.asp
Seeking: http://msdn.microsoft.com/library/defau ... erface.asp
, während das Movie auf ein Sprite gerendert wird. Dann funktionieren die nämlich nicht...
Wie du oben in der PB Struktur sehen kannst, sind alle benötigten Interfaces integriert, so z.B. auch das IBasicVideo Interface, elches z.Bdie Methode "GetCurrentImage(...)" enthält : http://msdn.microsoft.com/library/defau ... erface.asp
Musst nur noch gucken, wie du es auf ein Sprite renderst. Das geht dann wohl viell. mit DirectDraw... Musst mal schauen.
Hier gibts die OOP Option für PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

ui.... ich bin anfänger^^
trotzdem danke :allright:
Antworten