 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Caran

Anmeldungsdatum: 11.03.2007 Beiträge: 290 Wohnort: Lörrach
|
Verfasst am: 03.11.2007, 14:53 Titel: AVI in ogl-Fenster |
|
|
Hallöchen,
joa ich hab so ein Problem mit dem Code hier:
Code: |
#Include Once "windows.bi"
#include Once "GL/gl.bi"
#include Once "GL/glu.bi"
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (Byval lpstrCommand As String, Byval lpstrReturnString As String, Byval uReturnLength As Long, Byval hwndCallback As Long) As Long
Sub AVI_Open(Byval sFile As String, ByVal fenstertitel As String, ByVal aliasname As String = "myavi")
Dim sBuffer As String * 256
Dim nResult As Long
nResult = GetShortPathName(sFile, sBuffer, Len(sBuffer))
sFile = Left(sBuffer, nResult)
mciSendString "open " + sFile + " type avivideo alias "+ aliasname, 0, 0, 0
Dim ret As Long
ret = FindWindow(0, fenstertitel)
mciSendString "window "+ aliasname+ " handle " & ret, 0, 0, 0
End Sub
Sub AVI_Play(byVal aliasname As String = "myavi")
mciSendString "play "+aliasname+" from 0", 0, 0, 0
End Sub
Sub AVI_Stop(byVal aliasname As String = "myavi")
mciSendString "close "+ aliasname, 0, 0, 0
End Sub
Sub AVI_Close(byVal aliasname As String = "myavi")
mciSendString "close "+ aliasname, 0, 0, 0
End Sub
Sub LoadAvi(sFile As String, byval fenstertitel As String,byval aliasname as string = "myavi")
AVI_Open(sFile, fenstertitel,aliasname)
AVI_Play(aliasname)
End Sub
Sub StopAvi(byVal aliasname As String = "myavi")
AVI_Stop(aliasname)
AVI_Close(aliasname)
End Sub
screen 18,32,,2
WindowTitle "Test1"
LoadAvi("avi1.avi,"Test1")
sleep
StopAvi
End
|
Also der Code funktioniert bei mir erstmal nicht, aber wenn man das Video in einem nicht-ogl-Fenster abspielen lässt etwa Code: | screenres 640,480,32 | dann funktioniert das bis auf ein bisschen Flackern recht gut. Wieso geht das im ogl-Fenster nicht? was mache ich falsch.
MfG Caran |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Caran

Anmeldungsdatum: 11.03.2007 Beiträge: 290 Wohnort: Lörrach
|
Verfasst am: 03.11.2007, 15:09 Titel: |
|
|
Ja ich hab das mal irgendwo ausgegraben. Aber ich hab da was geändert: Code: |
Dim ret As Long
ret = FindWindow(0, fenstertitel)
|
Man muss, wohlgemerkt, den Namen des Fensters in dem man das Video haben will an die Sub übergeben. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 04.11.2007, 12:29 Titel: |
|
|
zeigt das AVI tatsächlich im Fenster an, leider ohne Ton?
und hängt sich dann am Ende auf
(Win ME, FB 0.18.2)
Code: | #INCLUDE ONCE "windows.bi"
#Include Once "win/mmsystem.bi"
'#INCLUDE ONCE "GL/gl.bi"
'#INCLUDE ONCE "GL/glu.bi"
SUB AVI_Open(BYVAL sFile AS STRING, BYVAL fenstertitel AS STRING, BYVAL aliasname AS STRING = "myavi")
mciSendString "open " & Chr(34) & sFile & Chr(34) & "type AVIVideo alias " & aliasname , NULL, 0, 0
DIM AS HWND hwnd = FindWindow(0, fenstertitel)
mciSendString "window "& aliasname & " handle " & hwnd, NULL, 0, 0
END SUB
...
... |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Caran

Anmeldungsdatum: 11.03.2007 Beiträge: 290 Wohnort: Lörrach
|
Verfasst am: 04.11.2007, 13:20 Titel: |
|
|
volta hat Folgendes geschrieben: |
und hängt sich dann am Ende auf
(Win ME, FB 0.18.2)
|
Ja aber auch nur im ogl-Fenster oder? Beim "standart" Freebasic-Screen aber nich. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 05.11.2007, 12:38 Titel: |
|
|
nein, leider auch im normalen fbgfx-Fenster
irgendetwas fehlt da noch???
EDIT/
So, ich habe den Fehler gefunden
Das flimmern des Bildes (auch im OGL-Fenster) wird durch die Bildwiederholung erzeugt. Wird mit Screenlock das neu-zeichnen des Fensters verhindert zeigt sich der AVI-Datenstrom ohne flimmern.
Code: | #Include Once "windows.bi"
#Include Once "win/mmsystem.bi"
Sub AVI_to_FBgfx( ByVal sFile As String, ByVal fenstertitel As String,_
ByVal aliasname As String = "myavi")
Dim As HWND hwnd = FindWindow(0, fenstertitel)
mciSendString( "open " & Chr(34) & sFile & Chr(34) & " type AVIVideo alias " & aliasname &_
" parent " & hwnd & " style " & WS_CHILD, NULL, 0, 0 )
mciSendString( "put " & aliasname & " window at 100 100 200 150", NULL, 0, 0 )
ScreenLock
mciSendString( "play "& aliasname & " wait", NULL, 0, 0 )
ScreenUnLock
mciSendString( "close "& aliasname, NULL, 0, 0 )
End Sub
Screen 18,32
Dim As String titel = "Test1"
WindowTitle titel
AVI_to_FBgfx( "AVITest.avi",titel )
Sleep
End | Das AVI lässt sich hier nicht vorzeitig stoppen.
Man kann in der Zwischenzeit nicht auf dem Screen arbeiten.
Alles erstmal nur unter ME und FB 018.2 getestet. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Caran

Anmeldungsdatum: 11.03.2007 Beiträge: 290 Wohnort: Lörrach
|
Verfasst am: 05.11.2007, 18:29 Titel: |
|
|
Mit Screenlock hat das ja jetzt mal ziemlich gut geklappt auch im OGL-Fenster. Der Code den du geschrieben hast, hat das Gute, dass sich das Video skalieren und positionieren lässt, dennoch stürzt es bei mir nach ein einiger Zeit ab und öffnet mache AVIs nicht.
Aber sonst ganz oke.
MfG Caran
[Edit:]
Nee der Code geht doch^^, das lag anscheinend nur am Format in dem die Videos vorlagen. Naja dann bedank ich mich mal für die hilfe.
MfG Caran |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 01.05.2013, 12:06 Titel: |
|
|
sorry für das ausgraben des alten beitrags
ich such nach einem weg ein video in welchem format auch immer in einem fb prog abzuspielen.
bin nun auf diesen Thread gestoßen leider spielt der code bei mir gar nichts.
hab ein 28sek. mp4 video von yt mit xmedia recode in avi umgewandelt
1. video codec auswahl xvid alles andere so gelassen - nach 2 sek. kann ich ich das schwarze fenster mit tastendruck schließen
2. video codec divx - selbes ergebnis
3. avi format mit mpeg2 codec (nur zum testen der ordnerangabe) - ging natürlich auch nicht aber wenigstens kam eine fehlermeldung bei der erkannt wurde das es ein mpeg2 code war
System = win 7
FB = 0.24
code der letzte der hier von Volta gepostet wurde
mich würde ja noch die vlclib die bei fb 0.24 mit bei ist interessieren nur leider kann ich nichts finden wie sie angewendet wird |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 01.05.2013, 19:58 Titel: |
|
|
Hi,
nach einigem experimentieren kam wenigstens ein AVI-Player dabei heraus (Win7 und FB 0.24).
Andere Formate (z.B. WMV) funktionieren nur teilweise (MP4 garnicht).
Code: | #Include Once "windows.bi"
#Include Once "win/mmsystem.bi"
Sub AVI_to_FBgfx(sFile As String, aliasname As String = "myavi")
Dim As HWND hwnd
ScreenControl(2, Cast(Integer, hwnd)) 'GET_WINDOW_HANDLE
If mciSendString("open " & sFile & " type AVIVideo alias " & aliasname &_
" parent " & hwnd & " style " & WS_CHILD, 0, 0, 0) = 0 Then
mciSendString("put " & aliasname & " window at 20 20 600 440", 0, 0, 0)
Sleep 200,1 'ohne diese Verzögerung bricht das Video vorzeitig ab
ScreenLock 'erlaubt eine flimmerfreie Ansicht
mciSendString("play "& aliasname & " wait", 0, 0, 0)
ScreenUnlock
mciSendString("close "& aliasname, 0, 0, 0)
EndIf
End Sub
ScreenRes 640,480,32
AVI_to_FBgfx("join.avi")
Sleep 5000 | Die Video-Daten sind aus dem Windows-Verzeichnis, lassen sich aber nicht über die Pfadangabe ansprechen  _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 03.05.2013, 00:15 Titel: |
|
|
vielen dank für deine mühe. doch leider leider läuft bei mir nichts
deshalb frag ich jetzt nochmal ganz doof mit
Zitat: | Die Video-Daten sind aus dem Windows-Verzeichnis, ... |
meinst du das die Avi datei in den Windows Ordner muss?
welche Eigenschaften hat dein Avi, vllt hab ich den falschen Codec gewählt |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 03.05.2013, 09:39 Titel: |
|
|
Hi,
nach AVI-Daten habe ich auf meinem PC gesucht und unter
C:\Windows\winsxs\x86_microsoft-windows-tabletpc-inputpanel_31bf3856ad364e35_6.1.7600.16385_none_11656be9d8d5e28f\join.avi
dieses Video gefunden. Leider wird es mit dieser Pfadangabe nicht abgespielt.
Also habe ich 'join.avi' in mein Arbeitsverzeichnis kopiert.
Einen besonderen 'Codec' brauchst du nicht, da in MCI 'type AVIVideo' angegeben wird. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 03.05.2013, 19:18 Titel: |
|
|
OK. Also im Arbeitsverzeichnis hatte ich mein AVI auch. Hab es jetzt mit dem Join Video aus dem Win-verzeichnis probiert - DAS GEHT ?!
hab jetzt die eigenschaften verglichen
Code: | mein.avi / Join.avi
28 / 10 sekunden
320 / 165 breit
240 / 97 hoch
2000 / 373 Datenrate
2128 / 373 Gesamtbitrate
25 / 33 bilder/sekunde
128 / ---- bitrate
2 / ---- kanäle
44 / ---- abtastrate
2.02MB / 217 KB
|
kann es sein das die Datenrate oder die Bitrate bei mir zu hoch ist
oder geht es nicht wenn eine Audiospur mit bei ist?
werd mein video nochmal bearbeiten.
EDIT: hab jetzt diverse Codecs und einstellungen versucht ich bekomme kein erstelltes avi zum laufen - es geht nur das join.avi
hab noch herausgefunden das das join.avi den MS RLE Codec hat - kann aber auch kein konverter finden der ein avi mit diesem format erstellen kann
hat noch jemand ne idee? komm da noch mal auf die vlclib zurück die in FB 0.24 enthalten ist - weiß da jemand wie man diese benutzt? |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|