Piotr Rachtan

Piotr Rachtan Lead Flash Platform
Developer /
Shockwave Developer

Temat: [AS3] Video frame-by-frame seeking

Witam,

Taki oto problem jest, potrzebuje płynnego seek'owania klatka po klatce (zarówno do przodu jak i do tyłu) klipu video o dość sporych rozmiarach (powiedzmy conajmniej 720x576), waga klipu nie gra roli, prezentacja idzie z dysku.

Próbowałem już:
- flv na timeline (movieclip.next/prevFrame, muli, szczególnie przy seekowaniu wstecz),
- netstream, z flv z keyframe co klatkę, (netstream.seek(), muli, jw.)

F4V (do netstream'a) da się wogóle zakodować z keyframe co 1 klatkę?
(odnosze wrażenie, że AME CS5 nadal tego nie robi - w CS4 to zdaje się wogóle był bug).

Aktualnie najpłynniej działa to z wyświetlaniem sekwencji jpg'ów (ładowanie z dysku jpg'a około 4ms więc spokojnie wystarcza do odtwarzania 25/30 fps, ale jakoś tak nie elegancko to rozwiązanie wygląda :)

Ma ktoś jakiś ciekawy pomysł lub doświadczenia w tej kwestii?
Adrian Z.

Adrian Z. flash animator/
flash developer

Temat: [AS3] Video frame-by-frame seeking

Kiedyś walczyłem z czymś podobnym i finalnie poprzestałem na serii jpgów :/

Piszesz, że z dysku 4ms, czyli że ciągniesz te jpgi z plików a nie z timeline'a?
Piotr Rachtan

Piotr Rachtan Lead Flash Platform
Developer /
Shockwave Developer

Temat: [AS3] Video frame-by-frame seeking

720x576 @ 24bpp * 30fps * 600 sekund... nie tyle ramu nie mam ;)
Tak, ładuje z dysku, wyładowuje jak nie potrzebne...
Piotr Mederak

Piotr Mederak Development Team
Leader

Temat: [AS3] Video frame-by-frame seeking

mp4 i 25 klatek kluczowych na sekunde.
Piotr Rachtan

Piotr Rachtan Lead Flash Platform
Developer /
Shockwave Developer

Temat: [AS3] Video frame-by-frame seeking

No coś jakby lepiej ;) muszę to potestować w wolnej chwili.

Da się wyciągnąć timestamp dla I-frame albo precyzyjne info o odstępie między klatkami?

position += 1/25 do przodu idzie,
ale
position -= 1/25 wygląda jakby szukał "następnej" klatki kluczowej...
Piotr Mederak

Piotr Mederak Development Team
Leader

Temat: [AS3] Video frame-by-frame seeking

moze precyzyjniej:

mp4 i this.stage.frameRate klatek w filmie :)

jak masz swfa z 28 czy 30 frameRate to napewno sie tak bedzie dzialo, ale jesli film ma tyle samo co swf to nie powinno byc problemow.

mozesz tez, o ile Ci na wadze nie zalezy wrzucic tak przygotowy film na timeline i zaciagac swfa. i poruszac sie po filmie na zasadzie gotoAndPlay(nr_klatki), z tym, ze takie rozwiazanie wymaga dobrego komputera - dlugie filmy na timeline lubia niestety na slabych maszynach rozjezdzac obraz z dzwiekiem nie mowiac o potrzebnym ramie :/
Piotr Rachtan

Piotr Rachtan Lead Flash Platform
Developer /
Shockwave Developer

Temat: [AS3] Video frame-by-frame seeking

hmm ponieważ prócz filmu "coś się tam ma jeszcze dziać"

zależało mi raczej na

---
metstream.play();
netstreem.pause();

netstream.seek(frame_time_stamp);
netstream.seek(frame_time_stamp + frame_time);
netstream.seek(frame_time_stamp - frame_time);

---

próbowałem FLV'a na time line (mp4 da się importować na timeline?) ale muli niesamowicie szczególnie przy prevFrame :(

EDIT:
User może kontrolować odtwarzeni filmu za pomocą user-device ;) film może stać w misjcu lub odtwarza się w tył/przód w zeleżności od akcji usera...

Może to nie processing i andruino ;) (łatwiej mi użyc attiny+libusb i win32service + Socket :P) ale działa...

A jak tam Wasz ostatni projekt z lab'u? Bo coś dawno news'ów nie było :(

EDIT2:
-------------------------
Widzę że AME wrzuca w metadanych do mp4 listę z opisem klatek kluczowych (time + offset (pewnie bajtowy)), no to chyba mam już swoją listę do seekowania :)

Dzięki za pomoc!Piotr Rachtan edytował(a) ten post dnia 03.02.11 o godzinie 17:09



Wyślij zaproszenie do