Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.01.2010, 06:52
robin_bobin2001 вне форума Посмотреть профиль Отправить личное сообщение для robin_bobin2001 Посетить домашнюю страницу robin_bobin2001 Найти все сообщения от robin_bobin2001
  № 1  
Ответить с цитированием
robin_bobin2001

Регистрация: Jun 2004
Адрес: Севастополь, Украина
Сообщений: 124
Отправить сообщение для robin_bobin2001 с помощью ICQ Отправить сообщение для robin_bobin2001 с помощью Skype™
По умолчанию getPixel со NetStream RTMP видео... как?

Перепробовал кучу вариантов.
Суть проблемы в следующем, если не подключаю стрим, все работает как часы, пиксели определяются, все замечательно. Как только стрим подключен, т.е. видео идет, пиксели не ловятся...

Код AS1/AS2:
import flash.display.*
import flash.mx.video;
 
//тут мы создаем стрим, назначаем ему адреса потоков и громкоти отдельной функцией
_root.createRTMP=function(hintobj,wherecont,cont,vidobj,smoth,path,stream,vol,IO1,IOobj1,IO1time){
wherecont.createEmptyMovieClip(cont,wherecont.getNextHighestDepth());
wherecont[cont].videoInstance = vidobj;
if(smoth=="smoth"){wherecont[cont].videoInstance.smoothing=true;}
wherecont[cont].nc = new NetConnection();
wherecont[cont].nc.connect(path);
wherecont[cont].ns = new NetStream(wherecont[cont].nc);
wherecont[cont].ns.setBufferTime(2);
wherecont[cont].nc.isLive=true;
wherecont[cont].ns.onStatus = function(infoObject:Object) {
//trace(infoObject["code"]);
if(infoObject["code"]=="NetStream.Buffer.Full"&&IO1){
_root.TweenedWhat(IOobj1,100,0,IO1time,"_alpha",1,null,funca,vara1,vara2,vara3,ID,true);
	}
if(infoObject["code"]=="NetStream.Buffer.Empty"){}
}//func
//Стопкадры
wherecont[cont].ns.onCuePoint = function(infoObject:Object){
    trace("onCuePoint:");
    for (var propName:String in infoObject) {
        if (propName != "parameters"){
            trace(propName + " = " + infoObject[propName]);}else{
            trace("parameters =");
            if (infoObject.parameters != undefined) {
                for (var paramName:String in infoObject.parameters){
                    trace(" " + paramName + ": " + infoObject.parameters[paramName]);
                }}else{trace("undefined");}}}
    trace("---------");}
 
wherecont[cont].ns.onMetaData = function(infoObject:Object) {
    for (var propName:String in infoObject) {
        trace(propName + " = " + infoObject[propName]);}}
 
 wherecont[cont].videoInstance.attachVideo(wherecont[cont].ns);
wherecont[cont].createEmptyMovieClip("sond", wherecont[cont].getNextHighestDepth());//Attach the netstream audio to the newly created symbol
 wherecont[cont].sond.attachAudio(wherecont[cont].ns);//we can now alter the volume of the netstream by setting the sound level of "audio"
 wherecont[cont].audio = new Sound(wherecont[cont].sond);
if(vol){
	wherecont[cont].audio.setVolume(vol);
}else{
	wherecont[cont].audio.setVolume(0);}
 wherecont[cont].ns.play(stream);
}
 
pata="rtmp://tralyalya/livevideo/";//Путь к видеостриму типа
_root.createRTMP(hintobj,_root,"vi1",_root.vid1,"smoth",pata,"stream4",50,IO1,IOobj1,IO1time); //вызываем функцию, создаем видеострим и подключаем на объект ВИДЕО
//_root.vid1 - это объект Video
 
///а от сюда уже пытаемся ловить цвет пикселя под мышкой...
_root.onMouseMove = function(){
var bmp:BitmapData = new BitmapData(Stage.width, Stage.height, false);
bmp.draw(this);
 
    var pColor:Number = bmp.getPixel(_xmouse, _ymouse)
    var hexColor:String = pColor.toString(16).toUpperCase()
    while(hexColor.length < 6){
        hexColor = "0" + hexColor
    }
    var r = Number("0x" + hexColor.substr(0,2))
    var g = Number("0x" + hexColor.substr(2,2))
    var b = Number("0x" + hexColor.substr(4,2))
    testo.text = "0x" + hexColor + ", {r:" + r + ", g:" + g + ", b:" + b + "}"
 
}
stop();


Последний раз редактировалось robin_bobin2001; 12.01.2010 в 06:57.
Старый 12.01.2010, 08:50
KODERart вне форума Посмотреть профиль Отправить личное сообщение для KODERart Найти все сообщения от KODERart
  № 2  
Ответить с цитированием
KODERart

Регистрация: Feb 2009
Сообщений: 36
Что за сервер, который отдает стрим? Флеш выдает какие-нибудь ошибки?
Это все политика безопасности. Флеш не может получить исходные данные потока если сервер не выдал политику безопасности. Надо настраивать сервер, который отдает поток.

Старый 12.01.2010, 11:26
robin_bobin2001 вне форума Посмотреть профиль Отправить личное сообщение для robin_bobin2001 Посетить домашнюю страницу robin_bobin2001 Найти все сообщения от robin_bobin2001
  № 3  
Ответить с цитированием
robin_bobin2001

Регистрация: Jun 2004
Адрес: Севастополь, Украина
Сообщений: 124
Отправить сообщение для robin_bobin2001 с помощью ICQ Отправить сообщение для robin_bobin2001 с помощью Skype™
Сервер все нормально отдает, видео отображается (я же об этом писал). Сервер Wowza. Трансляция идет нормально. Нужно просто детекцию движения сделать типа для него...

Добавлено через 7 минут
Цитата:
Сообщение от KODERart Посмотреть сообщение
Что за сервер, который отдает стрим? Флеш выдает какие-нибудь ошибки?
Это все политика безопасности. Флеш не может получить исходные данные потока если сервер не выдал политику безопасности. Надо настраивать сервер, который отдает поток.
Мне нужно работать с фрагментом отображаемого видео как с картинкой в принципе. Раз в секунду например дергать фрагмент видео в виде битмапа, и с ним что-то делать...

Старый 12.01.2010, 12:09
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 4  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Касаемо AS3, но для AS2 наверное тоже справедливо

Если мультимедийное содержимое загружено из RTMP-источника, то с помощью методов BitmapData.draw() и SoundMixer.computeSpectrum() нельзя получить графику и аудиоданные во время выполнения.

http://help.adobe.com/ru_RU


Последний раз редактировалось leofit; 12.01.2010 в 12:20.
Старый 12.01.2010, 12:50
robin_bobin2001 вне форума Посмотреть профиль Отправить личное сообщение для robin_bobin2001 Посетить домашнюю страницу robin_bobin2001 Найти все сообщения от robin_bobin2001
  № 5  
Ответить с цитированием
robin_bobin2001

Регистрация: Jun 2004
Адрес: Севастополь, Украина
Сообщений: 124
Отправить сообщение для robin_bobin2001 с помощью ICQ Отправить сообщение для robin_bobin2001 с помощью Skype™
Цитата:
Сообщение от leofit Посмотреть сообщение
Касаемо AS3, но для AS2 наверное тоже справедливо

Если мультимедийное содержимое загружено из RTMP-источника, то с помощью методов BitmapData.draw() и SoundMixer.computeSpectrum() нельзя получить графику и аудиоданные во время выполнения.

http://help.adobe.com/ru_RU
Это 100% верная информация?

И если не возможно через битмап дату, то как тогда можно?

З.Ы. транслирующий сервер http://www.wowzamedia.com/

Старый 12.01.2010, 13:12
KODERart вне форума Посмотреть профиль Отправить личное сообщение для KODERart Найти все сообщения от KODERart
  № 6  
Ответить с цитированием
KODERart

Регистрация: Feb 2009
Сообщений: 36
Цитата:
Сообщение от robin_bobin2001 Посмотреть сообщение
Это 100% верная информация?
И если не возможно через битмап дату, то как тогда можно?
З.Ы. транслирующий сервер http://www.wowzamedia.com/
Нет, это не 100%.
Мне удалось получать с потока SoundMixer.computeSpectrum() (в AS3 соответственно), но поток я получал с red5 и на самом сервере выставлял такие настройки у приложения:
Код:
<bean id="rtmpSampleAccess" class="org.red5.server.stream.RtmpSampleAccess">
	    <property name="audioAllowed" value="true"/>
	    <property name="videoAllowed" value="true"/>
	</bean>
FMS тоже можно настроить. Про Wowza - незнаю.

Добавлено через 6 минут
И еще вариант с потолка: может попробовать снять битмапдату с родительского клипа?

Старый 12.01.2010, 13:28
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 7  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Информация то верная, но я повторюсь что все это про AS3. Все таки посмотрите, мб во втором as2 доступны какие то методы.
А вообще в оригинальном родном FMS есть такая штука


Код AS3:
Client.videoSampleAccess
 
clientObject.videoSampleAccess
Enables Flash Player to access raw, uncompressed video data from streams in the specified folders.
Call the BitmapData.draw() method in client-side ActionScript 3.0 to read the raw data for a stream that is currently playing. For more information, see the
BitmapData.draw()
 
entry in ActionScript 3.0 Language and Components Reference.
Availability
Flash Media Interactive Server 3 and Flash Media Development Server 3
Ищите в WOWZA что то похожее

Старый 12.01.2010, 15:23
robin_bobin2001 вне форума Посмотреть профиль Отправить личное сообщение для robin_bobin2001 Посетить домашнюю страницу robin_bobin2001 Найти все сообщения от robin_bobin2001
  № 8  
Ответить с цитированием
robin_bobin2001

Регистрация: Jun 2004
Адрес: Севастополь, Украина
Сообщений: 124
Отправить сообщение для robin_bobin2001 с помощью ICQ Отправить сообщение для robin_bobin2001 с помощью Skype™
http://www.wowzamedia.com/forums/showthread.php?t=4750
Оно?

Старый 12.01.2010, 15:37
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 9  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
да, оно

Старый 12.01.2010, 16:00
robin_bobin2001 вне форума Посмотреть профиль Отправить личное сообщение для robin_bobin2001 Посетить домашнюю страницу robin_bobin2001 Найти все сообщения от robin_bobin2001
  № 10  
Ответить с цитированием
robin_bobin2001

Регистрация: Jun 2004
Адрес: Севастополь, Украина
Сообщений: 124
Отправить сообщение для robin_bobin2001 с помощью ICQ Отправить сообщение для robin_bobin2001 с помощью Skype™
ну вроде врубили доступ... только как в AS2 применить указанный пример? он вроде там какой-то снэпшот делает....

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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