Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   один NetStream на несколько видео (http://www.flasher.ru/forum/showthread.php?t=126938)

uncle_sam 01.07.2009 01:21

один NetStream на несколько видео
 
Начну издалека. В общем стоит задача создать некое подобие эффекта ambilight нынешних телевизоров.
что это за эффект можно посмотреть тут

этот эффект должен распространяться как на картинки, мувиклипы, и видео.
Собственно с мувиками и картинками проблем не возникло. Имеется 2 слоя на верхнем оригинальная картинка, на нижнем та же картинка но с повешенным на нее фильтром Blur. Аналогично с мувиклипами. Да и собственно с видео.
Но с видео возникла небольшая заморочка. Использую класс Video и с ним работаю через NetStream. Как на любой экземпляр класса наследующегося от DisplayObject на видео тоже можно повесить фильтр. Создаю верхний видеоконтейнер и нижний с Blur. Создаю новый экземпляр NetStream. Но он аттачиться сразу на 2 экземпляра Video не хочет.
Вот тут многоуважаемые знатоки и вопрос, а вернее несколько :) Можно ли используя один netStream приатачить его к двум объектам Video? Или же нужно создавать для каждого видео свой нетстрим? И если создавать каждому видео свой нетстрим, не возникнет ли проблемы с синхронизацией видео?
Или же есть какой-нибудь другой способ? Поделитесь опытом пожалуйста. Премного буду благодарен за любые ответы и линки.

AL.exe 01.07.2009 01:54

По-моему, быстрее будет высчитать среднее значение цвета на снимке BitmapData и либо руками его отрисовывать, либо повесить на Glow находящегося сзади прямоугольника по размеру видео, вместо того, чтобы нагружать процессор рендерингом двух видео, да еще и с фильтрами.

Может, я и не прав.

uncle_sam 01.07.2009 13:17

нет этот способ мне не подходит. Нужен именно блёр исходного изображения слоем ниже.

MonkDead 01.07.2009 13:41

Отрисовывайте видео в BitmapData, а дальше все тоже самое что и с
Цитата:

мувиками и картинками

wvxvw 01.07.2009 13:51

Да, только варианты с битмапдатой будут загибаться если ФПС у видео 25+ при размерах 320х240... а вообще - хреново, что нельзя один стрим двум видео... Можно, конечно, пробовать отрисовывать видео в битмапдату раз в два кадра, предположим, или даже еще реже... но все равно, при больших размерах видео нагрузка не маленькая получится...
Да, ну и естесственно, создавать битмапдату сразу с фильтром (applyFilter), а не накладывать его потом.

MonkDead 01.07.2009 14:23

Не будет загибаться. Видео 640x480 при 100FPS работает по этому методу. С фильтрами конечно нагрузка сильно увеличится, но 25++ FPS будет.

wvxvw 01.07.2009 15:25

Цитата:

Сообщение от MonkDead (Сообщение 832343)
Не будет загибаться. Видео 640x480 при 100FPS работает по этому методу. С фильтрами конечно нагрузка сильно увеличится, но 25++ FPS будет.

А проверить перед тем, как писать?
Видео 100 ФПС (это значит, что его нужно проигрывать 1 кадр в 10 миллисекунд). При таком ФПС только таймер будет давать погрешность около 50%-100% или если выставить такой ФПС флешке, то, реальный ФПС будет раза в 2 ниже, уже не говоря о том, что 10 миллисекунд не хватит для того, чтобы отрисовать 640x480 (307200) пикселов в битмапдату.

MonkDead 01.07.2009 20:55

Цитата:

А проверить перед тем, как писать?
Видео 100 ФПС (это значит, что его нужно проигрывать 1 кадр в 10 миллисекунд). При таком ФПС только таймер будет давать погрешность около 50%-100% или если выставить такой ФПС флешке, то, реальный ФПС будет раза в 2 ниже, уже не говоря о том, что 10 миллисекунд не хватит для того, чтобы отрисовать 640x480 (307200) пикселов в битмапдату.
wvxvw, все проверено. Зайдите завтра или послезавтра на мой сайт, появится урок и демка по video материалу (VideoMaterial). Так там видео натягивается на трехмерную модель и все это при 100FPS :).

А вы пробовали? Если да, видимо на калькуляторе или извращенно проводили отрисовку.

wvxvw 01.07.2009 21:26

У меня и виндовс-мидиа видео со 100ФПС играет с усилием... каким образом вы получили видео с таким ФПС?
Флеш никогда в жизни с такой скоростью ничего не сможет проиграть... потолок где-то в районе 50-60...

MonkDead 01.07.2009 21:34

Вы занимаетесь оптимизацией? Никто не заставляет рисовать видео 100 раз в секунду. Frame rate может быть хоть 1000, но отрисовывать будем 30 раз в секунду, для глаза разницы никакой а для процессора большая.

Еще раз повторяю, не стоит решать задачу в лоб!

wvxvw 01.07.2009 22:00

Цитата:

Сообщение от wvxvw (Сообщение 832334)
Да, только варианты с битмапдатой будут загибаться если ФПС у видео 25+ при размерах 320х240... а вообще - хреново, что нельзя один стрим двум видео... Можно, конечно, пробовать отрисовывать видео в битмапдату раз в два кадра, предположим, или даже еще реже... но все равно, при больших размерах видео нагрузка не маленькая получится...
Да, ну и естесственно, создавать битмапдату сразу с фильтром (applyFilter), а не накладывать его потом.

Ну так а я что говорю? А вы ерунду рассказываете про то как у вас видео 100 ФПС отрисовывается...

MonkDead 01.07.2009 22:11

Цитата:

Ну так а я что говорю? А вы ерунду рассказываете про то как у вас видео 100 ФПС отрисовывается...
Ну вообще то и при отрисовки 100 раз в секунду те же 100FPS. Сейчас вас видимо понесет в сторону того, что я считать FPS не умею или что нибудь в этом духе. Закроем тему останемся при своем мнении, вы отрисовывайте медленно, а я буду быстро.

etc 02.07.2009 07:47

MonkDead, нет уж, раз заявили про 100 FPS, то рассказывайте. Ну и подкрепляйте слова демонстрацией.

MonkDead 02.07.2009 10:22

__etc, хорошо хорошо :) Я же сказал
Цитата:

wvxvw, все проверено. Зайдите завтра или послезавтра на мой сайт, появится урок и демка по video материалу (VideoMaterial). Так там видео натягивается на трехмерную модель и все это при 100FPS .
Собственно вы можете скачать библиотеку и сами попробовать VideoMaterial :)

etc 02.07.2009 10:28

MonkDead, понимаю ваше желание впарить свой движок каждому встречному, но мне лень с ним разбираться. Выложите — посмотрим. Но опять же, это будет просто демонстрация возможностей, а не повествование опыта.

MonkDead 02.07.2009 10:35

Цитата:

MonkDead, понимаю ваше желание впарить свой движок каждому встречному, но мне лень с ним разбираться. Выложите — посмотрим. Но опять же, это будет просто демонстрация возможностей, а не повествование опыта.
Раз вопрос зашел о том, что я делал, я в этом уверен. Я вас не заставляю разбираться с движком, я сказал сделаю покажу и предложил альтернативный вариант (если вы ждать не хотите :))

Добавлено через 12 часов 11 минут
http://www.infinity3d-engine.com/exa...oMaterial.html
Можно добавлять плоскости с дубликатом видео кнопкой "+", выставлять прозрачность, создавать эффект стерео видео. Все остальное как и в любом видео плеере.

etc 03.07.2009 07:53

Посмотрел. А где видео 100 кадров в секунду? Мерялка в углу от силы 60 показывает при одной картинке, при четырех — 35, но это рендер. Хотя, как именно вы измеряете FPS, я не знаю, поэтому делать выводы сложно.
В общем, что меня должно было впечатлить?

MonkDead 03.07.2009 08:29

Цитата:

Посмотрел. А где видео 100 кадров в секунду? Мерялка в углу от силы 60 показывает при одной картинке, при четырех — 35, но это рендер. Хотя, как именно вы измеряете FPS, я не знаю, поэтому делать выводы сложно.
В общем, что меня должно было впечатлить?
_etc, Я вас уважаю как специалиста но вы такой упертый. Никогда позицию не сдаете даже когда на "палцах" вам объяснишь. Мне это напоминает как я вам 3 раза объяснял, как работает мипмаппинг во flash, я уверен что вы поняли тогда и с первого раза, но видимо гордость не позволяет вам признавать свои ошибки.

FPS, считаются не на рендер а на весь flash, и все кто посмотрел сказали что при 1 видео у них 100 FPS, а при 4 в районе 50. А вообще вопрос состоял в том, что flash неспособен 100 раз в секунду отрисовывать BitmapData при разрешении 640х480 (что бы это увидеть не надо плоскость приближать, при приближении FPS снижается не из-за отрисовки в BitmapData, а из-за площади отрисовки при рендеринги). Как видите на отрисовку одного кадра нужно 0 - 1 миллисекунд, а не как вы говорили 10.

etc 03.07.2009 08:37

MonkDead, мипмаппинг? А точно мне? Я не помню, честно говоря.

Ну нету у меня сотни FPS, вам скрин дать? 55—60, не больше, при одной единственной картинке. Если бы вы код показали, было бы интересно. А так, вы мне показываете некую цифру, измеренную по каким-то неизвестным критериям и говорите, что всё круто, при этом делаете удивленное лицо, когда возникают сомнения в этом.

MonkDead 03.07.2009 08:43

Цитата:

Ну нету у меня сотни FPS, вам скрин дать? 55—60, не больше, при одной единственной картинке. Если бы вы код показали, было бы интересно. А так, вы мне показываете некую цифру, измеренную по каким-то неизвестным критериям и говорите, что всё круто, при этом делаете удивленное лицо, когда возникают сомнения в этом.
Сомнение возникает только у вас :). А мипмаппинг, точно вам объяснял.
Недавно вы просили только демку, теперь еще и код :). Выложу сегодня исходник этой демки можете посмотреть и повесить рядом свою "мерялку" и сравнить. "Мерялка" - вполне стандартная, через врямя считает.

etc 03.07.2009 09:00

Цитата:

Сообщение от MonkDead (Сообщение 832869)
Сомнение возникает только у вас :)

При условии, что в теме кроме ваших и моих ответов по этому поводу больше ничьих нет, то да, сомнения тут только у меня :quiet: Да и фипиэсы совсем не 100 (таки дать скрин?)
Ну ещё Олежка не смотрел, позже ответит.

В общем, ладно, сотня, так сотня. Помогите лучше автору темы.

MonkDead 03.07.2009 09:22

Цитата:

При условии, что в теме кроме ваших и моих ответов по этому поводу больше ничьих нет
А кто сказал что отзывы о демки только тут пишут.

Цитата:

Помогите лучше автору темы.
Собственно из за этого спор и завязался.

Цитата:

Отрисовывайте видео в BitmapData, а дальше все тоже самое что и с мувиками и картинками
Я же предложил вариант и видимо автору темы он подошел или мы его напугали нашими спорами :).

BlooDHounD 03.07.2009 10:31

так а где видео на 100 фпс? мне кажется Олега это тоже заинтересует.

п.с.: я даже потратил 5 минут вчера и пытался найти такое видео в интернете. не нашёл, но я думал что у Вас есть.

п.с.2: я тут заметил, уже не первую тему, где Вы, уважаемый MonkDead, включаете упёртость, когда понимаете, что ляпнули фигню. потом Вам гордость мешает это признать, и Вы в замен пытаетесь подсунуть "что-то типа того". только все вокруг понимают, что это совсем не то.

MonkDead 03.07.2009 10:35

Цитата:

п.с.2: я тут заметил, уже не первую тему, где Вы, уважаемый MonkDead, включаете упёртость, когда понимаете, что ляпнули фигню. потом Вам гордость мешает это признать, и Вы в замен пытаетесь подсунуть "что-то типа того". только все вокруг понимают, что это совсем не то.
BlooDHounD, странные переводы стрелок. Даже смешно.

Цитата:

так а где видео на 100 фпс? мне кажется Олега это тоже заинтересует.
п.с.: я даже потратил 5 минут вчера и пытался найти такое видео в интернете. не нашёл, но я думал что у Вас есть.
Вы читаете только между строк не вникая в суть вопроса? Речь идет об отрисовки в BitmapData c размерами 640x480, 100 раз в секунду, а что вы там искали в интернете, видимо известно только вам. Наверно вы пытались найти видео с фрейм рейтом 100 :).

iflamberg 03.07.2009 16:35

MonkDead, вы конечно спец, и движок у вас хороший, но я тоже 100 fps не увидел.
Под winXP:
В опере: среднее фпс 50-60. Дергается от 100 до 40.
в ие6 - стабильно 64 (видимо потолок ActiveX-плеера).
а, ну вот лиса показала 99-100 фпс.

Ну _etc и BlooDHounD сидят, насколько я знаю, под Mac и сафари, и, судя по всему, произодительность у флеша с сафари никакая.

MonkDead 03.07.2009 16:43

Цитата:

Под winXP:
В опере: среднее фпс 50-60. Дергается от 100 до 40.
в ие6 - стабильно 64 (видимо потолок ActiveX-плеера).
а, ну вот лиса показала 99-100 фпс.
Internet explorer - имеет придел 64, все верно из-за кривого ActiveX.
Firefox - лучше всего с flash работает.
Opera - почти также с flash работает, не знаю почему у вас такой разброс у меня не наблюдается.

Цитата:

Ну _etc и BlooDHounD сидят, насколько я знаю, под Mac и сафари, и, судя по всему, произодительность у флеша с сафари никакая.
Я знаю под чем они сидят. На Mac'ах тестирование не провожу, всего 1% пользователей сидит на Mac'ах, не та аудитория на которую стоит ориентироватся. Вот это и непонятно зачем они так упорно пытаются спорить зная что, Mac'и не дружат с flash и ориентироватся на них смысла нет.

DarkLight 03.07.2009 17:01

На Mac fps почти в 2 раза ниже. В РФ на мак юзеров обычно (но не всегда) можно забить, но проблема в том, что для промо-сайта международной компании уже Ваш движок использовать не будут, т к в некоторых странах доля Mac >10%, и это существенно. Или для игр ориентированных на весь мир.

У меня на мобильном Core 2 Duo 8xxx линейки в опере fps скачет от 64 до 126 с 80 в среднем, 7xxx линейки - от 54 до 89 со средним в 70.

iflamberg 03.07.2009 17:03

А движок-то не причем. Это все флеш =( Т.е., я уверен, что papervision и альтернатива там покажут такой же результат.

MonkDead 03.07.2009 17:03

Цитата:

На Mac fps почти в 2 раза ниже. В РФ на мак юзеров обычно (но не всегда) можно забить, но проблема в том, что для промо-сайта международной компании уже Ваш движок использовать не будут, т к в некоторых странах доля Mac >10%, и это существенно.
И видимо не только мой, тогда уж все, т.к. они гораздо медленнее.

Цитата:

А движок-то не причем. Это все флеш =( Т.е., я уверен, что papervision и альтернатива там покажут такой же результат.
Вот вот.

Вот накопал видео на PaperVision 3D и Away3d, одни тормоза при 320х240 + жуткие текстурные искажения и проблемы с сортировкой:
http://www.garrahan.org/
http://wonderfl.net/code/14fd6def194...cf64341cf0b826
http://www.airtightinteractive.com/d...mp/away3d.html - те же 4 плоскости с меньшими размерами при макс fps 7-9. И проц грузится на 80 - 100% (даже для 1 видео), в сравнении с 12% (1 видео) - 40% (4 видео) у меня.

Zebestov 04.07.2009 16:24

Это только мне кажется, или у демки плеера, которую привел MonkDead, обратная перспектива? =)

MonkDead 04.07.2009 16:31

Цитата:

Это только мне кажется, или у демки плеера, которую привел MonkDead, обратная перспектива? =)
Нету обратной перспективы, это орфографический режим, а глаз человека видит в перспективе (из - за этого получается иллюзия обратной перспективы). Проверить очень легко возьмите линейку и приложите к монитору сразу станет видно что нет обратной перспективы.

Zebestov 04.07.2009 16:37

ну линейкой не мерял, но так и подозревал =)
режим наверное все-таки орТографический ;)

wvxvw 05.07.2009 17:49

Вложений: 1
А я так ничего и не увидел...
А по поводу 100 ФПС... ну как бы вам еще сказать... вы просто элементарно ни таймер, ни фреймрейт флешки не сможете такой выставить. Т.е. поставить stage.frameRate = 100 - это одно, а вот чтобы отобразить такое, надо чтобы плеер реально отрисовал эти 100 кадров. даже если какими-то усилиями вам удасться отрисовать битмапдату за меньше чем 10 мс, флеш просто не в состоянии выводить это на экран с такой скоростью. Просто создайте пустую флешку и запустите в ней таймер с интервалом 10 мс - увидите, на сколько большая погрешность. Естесственно, что когда флешка еще и что-то считать кроме этого будет, погрешность будет еще больше, кроме того, разные плагины / актив-иксы ведут себя по-разному, но в большинстве случаев при завышеном ФПС будут его резать, при чем, чем выше ФПС, тем сильнее будут резать...
А так, вообще, конечно, ФПС можно и 1000 выставить...

MonkDead 05.07.2009 19:22

wvxvw, философствовать можно сколько угодно по этому поводу. Я сделал демку на своем движке. А вы все продолжаете голословно упорствовать при том, что сами не подтверждаете свои слова ничем.

Цитата:

Т.е. поставить stage.frameRate = 100 - это одно, а вот чтобы отобразить такое, надо чтобы плеер реально отрисовал эти 100 кадров. даже если какими-то усилиями вам удасться отрисовать битмапдату за меньше чем 10 мс, флеш просто не в состоянии выводить это на экран с такой скоростью.
Откуда вы взяли эти присловутые 10мс мне непонятно.
Создайте BitmapDate 640х480 и 100 раз в секунду рисуйте в нее что нибудь и смотрите на результат.

По поводу ошибки.
Мне почему то кажется это провокацией, т.к. у всех работает а именно у вас кто был инициатором спора она не работает странные совпадения не так ли!

wvxvw 05.07.2009 20:23

Откуда вы взяли эти присловутые 10мс мне непонятно.
Создайте BitmapDate 640х480 и 100 раз в секунду рисуйте в нее что нибудь и смотрите на результат.
>>
Устный счет в пределах ста...

А по поводу остального... ну, не знаю... вам хочется верить, что белое - это черное... коль скоро вы довольны результатом - ну и ладно :)

MonkDead 05.07.2009 20:58

Цитата:

Откуда вы взяли эти присловутые 10мс мне непонятно.
Создайте BitmapDate 640х480 и 100 раз в секунду рисуйте в нее что нибудь и смотрите на результат.
>>
Устный счет в пределах ста...
Хаха, заметьте вы всю тему утверждаете что невозможно заполнить BitmapData c размерами 640х480 менее чем за 10мс, я вот про это и спрашиваю откуда вы взяли такой придел. А не про то сколько милисекунд в секунде и сколько милисекунд в кадре при frameRate = 100.

Цитата:

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

silin 05.07.2009 22:14

Код AS3:

private function test():void
{
        var i:int;
        var t:int = getTimer();
        for (i = 0; i < 1e3; i++)
        {
                bmd.draw(this);//640x480
        }
        trace(getTimer() - t);//611,572,569 на T7100 @ 1.8GHz
}

итого меньше 1 мс,
откуда взялись 10мс и причем здесь таймер действительно непонятно

MonkDead 05.07.2009 22:47

silin, спасибо что потратили свое время на элементарный тест.
Кстати мои результаты:
Код AS3:

trace(getTimer() - t);//229,232,234 на Intel Core 2 Duo E4600 2.4 Ghz

То есть за 1 мс у меня рисуется 4 BitmapData.

wvxvw 05.07.2009 23:04

Я не знаю... а при чем тут сколько битмапдат можно отрисовать за 1 секунду? Какое это вообще отношение к фреймрейту имеет? Вам нужно рисовать по одной битмапдате в 10 миллисекунд а не 100 за секунду...
Таймер при том, что видео, с которого вы срисовываете битмапдату тоже должно изменяться 100 раз в секунду - это и называется 100 ФПС. Вы просто даже показать видео у которого родной ФПС = 100 во флеше не сможете, то что вы его будете при этом рисовать куда-то вообще имеет мало значения...

Т.е. тест приближенный к действительности - создайте флешку на 100 кадров, положите на таймлайн видео с ФПС = 100, поставьте ей ФПС = 100, и отрисовывайте каждый кадр по тому же ентерфрейму. Если у вас получится, что вся эта операция займет секунду - вы правы, если нет - увы.

silin 05.07.2009 23:14

сколько битмапдат можно отрисовать за 1 секунду здесь при том, что сама отрисовка в битмап (меньше 1мс) никак не может стать причиной загибания плеера

почему при этом видео должно с такой скоростью меняться непонятно
вроде бы никто и не собирался такое видео показывать..


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

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