Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   SWF streaming (http://www.flasher.ru/forum/showthread.php?t=114612)

Dubinsky 04.08.2008 13:48

SWF streaming
 
Здравствуйте,

У меня возник вопрос, даже не знаю как его спросить у GOOGLE. Есть видео, запакованное в SWF. Возможно ли его загрузить в другом SWF и проиграть в потоке, не дожидаясь полной загрузки мувика? Намекните хотя бы, реально ли это, как это должно происходить и с какими проблемами можно при этом столкнутся.

Заранее спасибо.

mre 04.08.2008 14:12

Цитата:

> Возможно ли его загрузить в другом SWF?
Да.
Цитата:

> и проиграть в потоке, не дожидаясь полной загрузки мувика?
Нет. Пока swf файл не загружен, никакие данные из него не доступны, кроме лежащих в загруженных фреймах главной timeline.

Dubinsky 04.08.2008 14:32

Странно, но ведь в любом проекте есть т.н. прелоадер, который на первом кадре работает даже тогда, когда остальной файл еще не доступен... Или там по-другому подгружается мувик?

mre 04.08.2008 15:51

Цитата:

Сообщение от Dubinsky (Сообщение 756182)
Странно, но ведь в любом проекте есть т.н. прелоадер, который на первом кадре работает даже тогда, когда остальной файл еще не доступен... Или там по-другому подгружается мувик?

Но этот первый кадр тоже необходимо загрузить.
Обычно его делают "легким", он быстро загружается и отображает процесс загрузки остального "тяжелого" содержимого файла.
К тому же далеко не в каждом проекте такой прелоадер.
Но если у Вас видео лежит в главном timeline можно этот файл использовать как обычный flv.

wvxvw 04.08.2008 18:01

mre: не правда. Только это называется не стриминг а буферизация. SWF по определению формат, который можно буферизировать, как только кадр загрузился - его можно проиграть. На самом деле это даже проиcxодит автоматически. Т.е. если вы будете загружать клип, в котором много кадров, то он и будет проигрываться по мере загрузки, а не после того, как последний кадр загрузится.

mre 04.08.2008 18:24

wvxvw, спасибо что разъяснили.

BlooDHounD 05.08.2008 11:51

wvxvw, не правда. так как ты описал работает только таймлайн. все остальные пока не загрузятся польностью не проиграются.

wvxvw 05.08.2008 13:12

BloodHound:
А ты попробуй =) Я наоборот, долго мучался, не мог придумать, как избавится от того, чтобы загружаемый ролик в котором есть несколько кадров не проигрывался до полной загрузки. Т.е. пришлось в Event.PROGRESS все время его отсылать на первый кадр.

mre 05.08.2008 13:21

На мой взгляд главный timeline вообще лучше не использовать.
А анимации пусть лежат в библиотеке.

BlooDHounD 05.08.2008 14:05

wvxvw, а чё пробывать? если мувик не лежит на таймлайне, то пок он целиком не загрузится, таймлайн не перейдёт на этот кадр.

wvxvw 05.08.2008 15:24

Мувик, который находится в кадре на таймлайне является его частью? - помоему ответ очевиден, да. если этот мувик не загрузился, следовательно, кадр в котором он находится тоже не загрузился.
Если эмбед видео будет лежать на основном таймлайне - то и проигрываться будет по мере загрузки, а если оно будет лежать в библиотеке и аттачится от туда, то, ессно, пока все не загрузится - ничего играть не будет.

BlooDHounD 05.08.2008 16:15

wvxvw, эх ... во первых с видео отдельная песня. а мувиками можешь сам попробывать. возьми мувик в 2 кадра и положи на таймлайн в 2 кадра. как не странно, но уже в первом кадре таймлайна у тебя будут загружены оба кадра мувика :)

wvxvw 05.08.2008 22:40

Так млин, если ты положишь мувик в первый кадр, то он весь и будет в первом кадре, какая разница сколько в нем самом кадров?

BlooDHounD 05.08.2008 23:59

wvxvw, ты кажется мне пытался доказать, что мувики во флэше в потоке грузятся? или я слепой?

wvxvw 06.08.2008 03:40

Цитата:

Сообщение от wvxvw (Сообщение 756222)
Только это называется не стриминг а буферизация. SWF по определению формат, который можно буферизировать, как только кадр загрузился - его можно проиграть. На самом деле это даже проиcxодит автоматически. Т.е. если вы будете загружать клип, в котором много кадров, то он и будет проигрываться по мере загрузки, а не после того, как последний кадр загрузится.

Выделил красным цветом. Pечь изначально шла о том, как загружается SWF файл и включеное в него видео. Помоему мой ответ вполне точно и достоверно описывает то, как это происходит. Если есть сомнения - есть bandwidth profiler во Флеше, включаем имитацию загрузки и смотрим что и когда загружается, и что когда начинает проигрываться.

BlooDHounD 06.08.2008 10:18

wvxvw, гы
Цитата:

Т.е. если вы будете загружать клип, в котором много кадров, то он и будет проигрываться по мере загрузки, а не после того, как последний кадр загрузится.
красным надо всё предложение выделять? про видео и близко речи нету. и чуть позже:
Цитата:

А ты попробуй =) Я наоборот, долго мучался, не мог придумать, как избавится от того, чтобы загружаемый ролик в котором есть несколько кадров не проигрывался до полной загрузки. Т.е. пришлось в Event.PROGRESS все время его отсылать на первый кадр.
а теперь внимание вопрос: что же есть мувик? это такая сборная солянка, которая во флэше обозначает всё что угодно? или, может, в связи с тем, что в АС2 был метод loadMovie, который грузил джепеги, мне надо картинки начать называть мувиками?

wvxvw 06.08.2008 14:02

Ну и где ты там увидел "мувик"? Написано "ролик", ролик, это !== MovieClip, это весь файл, а не какая-то его часть.

BlooDHounD 06.08.2008 14:37

ну допустим. а в первой цитате, слово "клип", что обозначает?

wvxvw 06.08.2008 14:48

Оп-па, оказалось, совсем не банальный вопрос =) Я вот до последнего был уверен, что это вполне легитимное русское слово, обозначающее отрезок видео/анимации. А словари говорят, что это либо чайка, либо руки (или какой-то древний инструмент типа совка, которым можно было "загребать" =)

Dubinsky 07.08.2008 18:07

Да, видео в SWF грузится замечательно и в потоке, гори оно синем пламенем это FLV, теперь только SWF embedded video. Но не могли бы вы мне подсказать как отследить что Видео в данный момент не играется а буфферизируется? Какие события приходят при остановке видео для буфферизации и какое событие на дальнейшее проигрывание? Ну чтобы красиво все выглядело, отдельную тему делать уже не хочется ради такой то мелочи...

wvxvw 07.08.2008 20:28

Цитата:

framesLoaded property

framesLoaded:int [read-only]

Language Version : ActionScript 3.0
Player Version : Flash Player 9



The number of frames that are loaded from a streaming SWF file. You can use the frameLoaded property to determine whether the contents of a specific frame and all the frames before it loaded and are available locally in the browser. You can also use it to monitor the downloading of large SWF files. For example, you might want to display a message to users indicating that the SWF file is loading until a specified frame in the SWF file finishes loading.

If the movie clip contains multiple scenes, the framesLoaded property returns the number of frames loaded for all scenes in the movie clip.



Implementation
public function get framesLoaded():int
только так...

Dubinsky 11.08.2008 17:35

Пробовал этот проперти - не работает. Он все время выдает как будт окадры уже загружены (в SWF c embedded video). Мне даже пришлось лоадер высчитывать по байтам (bytesLoaded, bytesTotal). Неужели никакое событие не приходит клипу, если его стрим дошел до ручки и он ждет наполнения буфера?

wvxvw 11.08.2008 18:12

не знаю, у меня работает...

terbooter 12.08.2008 15:22

Отписался в вашей первой теме про загрузку видео

Я думаю, все-таки лучше нормально сконвертировать в FLV.
Потому что так делают все. FFmpeg пробовали?


Часовой пояс GMT +4, время: 12:34.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.