[AS3] Hoe kan ik de framerate van een video aanpassen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tha Ertenal
  • Registratie: September 2002
  • Laatst online: 31-05-2022
Ik ben bezig met een video game waarbij de framerate van de video aangepast moet worden terwijl je aan het gamen bent. Dus de standaard video heeft een fps van bijvoorbeeld 24fps terwijl dit na een bepaalde actie ineens 15fps moet zijn. Nu zit ik op internet te zoeken hoe ik dit kan toepassen maar zelfs de adobe api helpt mij niet verder. Hoe kan ik dit toepassen? Of is dit überhaupt niet mogelijk?

AMD Phenom II X6 1090T | 2x 4GB Kingston | Geforce GTX 560TI | Creative I-Trigue L3450


Acties:
  • 0 Henk 'm!

Verwijderd

Dit kan voor zover ik weet enkel in AS3 met:
stage.frameRate = 15

Let wel op dat je een stage reference hebt.

Acties:
  • 0 Henk 'm!

  • Tha Ertenal
  • Registratie: September 2002
  • Laatst online: 31-05-2022
Tnx, ik heb dat inderdaad geprobeerd en het werkt wel. Zij het zoals het hoort. Helaas heb ik het verkeerd bedacht. De FPS wordt namelijk verandert, maar de video speelt zich niet langzamer af. Er worden simpel minder frames laten zien. Een denkfout van mij dus. Is er wel een mogelijkheid om de afspeelsnelheid van de video aan te passen?

AMD Phenom II X6 1090T | 2x 4GB Kingston | Geforce GTX 560TI | Creative I-Trigue L3450


Acties:
  • 0 Henk 'm!

  • Tsjilp
  • Registratie: November 2002
  • Niet online

Tsjilp

RS[I]ds

Dan zul je met bijvoorbeeld een enterframe of setinterval moeten gaan berekenen naar welk frame / tijdstip in de video gesprongen moet worden. Denk alleen niet dat je dan een bijster mooie video krijgt

Raar... Is zo gek nog niet


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
De FLV-familie aan video containers is fixed frame rate en de video playback classes in Flash zullen een video altijd afspelen op de framerate die je FLV terug geeft. Vandaar dus ook de schokkerigheid als je stage FPS te laag is: intern worden er dan frames gedropped om toch op de goede (hogere) FPS van de FLV te blijven.

Je kunt weliswaar gaan sleutelen met enterFrame of setInterval, maar ook dan is het enige wat je kunt doen het toepassen van 'seeking' naar i-frames binnen de video. Standaard komen deze voor met een frequentie van 0,5 Hz, als ik me goed herinner. Als er slechts een i-frame om de 2 seconden beschikbaar is, is seeking voor het toepassen van dynamische timescaling niet bruikbaar.

Enige wat je dan resteert is je eigen decoder en player gaan schrijven die met timescaling overweg kan. Ik denk dat dat binnen de Flash sandbox niet kan.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb ergens gelezen dat een play/pause met een bepaald interval je filmpje kan vertragen. Maar kan dit niet bevestigen.

Seeken is in principe wat flexibeler maar dan hang je inderdaad af van je keyframes (of i-frames zoals R4gnax ze noemt.) Hoe minder keyframes je hebt, hoe minder specifiek je kan seeken. Je kan in de Flash video encoder het keyframe interval op 1 zetten waardoor je een keyframe op elke frame hebt staan en dus naar elke frame kan seeken. Naar mijn ervaring heeft dit geen enorme impact op de filesize. Dit heb ik in het verleden al succesvol gebruikt om een FLV filmpje achterwaards af te spelen.

Dit is natuurlijk allemaal er van uit gaande dat er geen audio in je FLV zit. Als er audio bij komt kijken heb je nog een ander en veel groter probleem.

Als dit overigens niet om een "filmpje" gaat maar eerder een relatief korte animatie waar je wat controle over wil hebben kan je beter een image sequence gebruiken.
Pagina: 1