Seite 1 von 3
video im fullscreen modus?
Verfasst: 05.07.2008 20:48
von haggi
Hallo leute, ich bin immer noch an meinem projekt, und benötige jetzt einen player, der im Vollbildmodus läuft, der relativ wenig systemleistung benötigt, nicht so hochvergrößert wird, dass man die pixels schon sieht und das man es durch eine mausbewegung aufhören kann. (ist wichtig falls ihr systembefehle als antwort schreibt.)
die player, die im codearchiv dabei sind habe ich schon versucht.
ich hoffe ihr versteht das richtig, ich brauche keinen kompletten code von euch (natürlich wäre ich dem nicht abgeneigt :-)falls ihr in der richtung schon was habt

) aber jeder tipp hilft mir dabei!!! also wenn ihr was habt, antwortet bitte, und falls noch irgend etwas unklar sein sollte bitte auch!
ach eins noch diesen mausefekt benötige ich, da das so eine art bildschirmschoner werden soll, der nach ner bestimmten zeit anläuft. das programm wird in einem screen (openscreen) ausgeführt.
danke schon im vorraus gruß haggi
Verfasst: 05.07.2008 22:00
von Fluid Byte
Wie sollen die Daten denn bereitgestellt werden? Eine Datei per Commandline, Playlist oder gar ein Dateidialog?
Verfasst: 05.07.2008 22:05
von marco2007
foll = voll + full

Verfasst: 05.07.2008 22:09
von haggi
die werden entweder mit einer config oder direkt im programm angegeben und so fest hinterlegt. Vermutlich wird es aber eine config geben, wo das drin steht. die config wird dann ausgelesen, und mit einer variable zur verfügung gestellt.
gruß haggi
p.s. achso dann schreiben wir mal vollbild noch richtig!
Re: video im fullscreen modus?
Verfasst: 06.07.2008 04:24
von Danilo
haggi hat geschrieben:... nicht so hochvergrößert wird, dass man die pixels schon sieht ...
Schon etwas probiert in der Richtung?
Code: Alles auswählen
ResizeMovie(#Movie, x, y, Width, Height)
PlayMovie(#Movie, ScreenID())
Oder
zusammen mit Sprite/Sprite3D in der Größe die Du haben möchtest?
Verfasst: 06.07.2008 11:54
von haggi
HI, das mit dem render n hab ich schon versucht (war in den oben schon gesagten projekten mit drin) das hatte genu das problem, das die cpu last so in die höhe schoss und dass alles sehr verpixelt aussah. das eingangsvideo war ein divx in guter quali mit ner auflösung von 720 x 576
der screen auf den das ausgegeben wird ist 1024x768. wenn man dies allerxdings über andere löusungen beispielsweise vlc ausgib, ist die qualität deutlich besser. wenn man das ganze über systembefehle macht, sieht das im vollbildmodus auch so gut aus und die cpu last ist auch sehr gering. allerdings fehlt mir die moglichkeit, dies in einer vernünftigen quali auf dem screen auszugeben.
habt ihr da ne idee?
gruß haggi
p.s. das mit dem sprites werde ich natürlich mal noch versuchen! danke hierfür!
Verfasst: 06.07.2008 15:11
von Kaeru Gaman
wie der resized wird hab ich keine ahnung, ob das raw oder smooth ist.
ein 720x576 Video würde ich auf nem 1024x768 vielleicht auch eher centered ausgeben.
aber pixelige anwandlungen habe ich auch bei videos von älteren games,
das ist schon fast normal wenn der video nicht in der späteren screenauflösung erstellt wird,
und je nach codec kann der auch sonst ziemlich bös aussehen.
was die CPU-Last betrifft:
FlipBuffers() hat eine hardcore-warteschleife um auf den nächsten VSync zu warten.
d.h. solange wie der befehl wartet, lastet er die CPU voll aus.
um das zu vermeiden musst du ein Delay() in deine schleife packen,
das gibt CPU-Zeit ans system frei während es wartet.
Verfasst: 06.07.2008 15:28
von haggi
hmm kann dir leider auch nett genau sagen, ob das raw oder smooth ist. danke auch für deine hinweise betreffs der Warteschlange und dem delay, hab mich gewundert warum das in einigen projekten vor kam.
die frage was sich mir dabei stellt, ist, wiese bekommen es dann player wie vlc hin. (auch wenn sie keine flipbuffers etc. einsetzen) oder ist das villeicht schon das problem? villeicht kannst mir da nochmal helfen.
danke und gruß an alle
haggi
Verfasst: 06.07.2008 15:31
von Kaeru Gaman
FlipBuffers ist ja ein PB-Befehl.
natürlich gibt es etwas entsprechendes in anderen sprachen,
aber wie das dort umgesetzt wird ist immer die Sache desjenigen, der dir Lib erstellt.
es ist durchaus wahrscheinlich, dass einer, der nen Player in C++ schreibt,
in seinen selbstgemachten FlipBuffers-Befehl gleich nen freischaltenden Timer mit einbaut.
PS:
hier hatte ich letztens n beispiel fürn angepasstes delay gepostet
http://www.purebasic.fr/german/viewtopi ... 769#202769
Verfasst: 06.07.2008 15:46
von haggi
hmmm ok, ich hab dir mal was angehängt, wo ich ausm code archiv hab, wäre nett, wenn du mir villeicht die unterschiede (sofern sie dir bekannt sind) zwischen nem vollbildplayer (openscreen) und diesem "vollbild" player. das wäre cool.
gruß haggi
Code: Alles auswählen
; English forum: http://www.purebasic.fr/english/viewtopic.php?t=6183&highlight=
; Author: Num3 (updated for PB4.00 by blbltheworm + Andre)
; Date: 18. May 2003
; OS: Windows
; Demo: Yes
; Added code for working example by Andre 14th June 2003
path$="C:\" ; change to your own path + file
file$=""
#Screenwidth = 800
#Screenheight = 600
If InitSprite() And InitKeyboard() And OpenScreen(#Screenwidth,#Screenheight,32,"Movie Screen")
Else
End
EndIf
;-PlayAvi
playavi :
FlipBuffers()
ClearScreen(RGB(0,0,0))
FlipBuffers()
If InitMovie()
If LoadMovie(0, path$ + file$)
ResizeMovie(0,0,0,#Screenwidth,#Screenheight)
ClearScreen(RGB(0,0,0))
Delay(1000)
PlayMovie(0, ScreenID())
Repeat
ExamineKeyboard()
Delay(1)
Until (MovieStatus(0)=MovieLength(0) - 2) Or KeyboardPushed(#PB_Key_Escape)
FreeMovie(0)
ClearScreen(RGB(0,0,0))
EndIf
EndIf
Return
Code-Tags eingesetzt - nächtes Mal bitte selber dran denken - Kaeru