![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Перепробовал кучу вариантов.
Суть проблемы в следующем, если не подключаю стрим, все работает как часы, пиксели определяются, все замечательно. Как только стрим подключен, т.е. видео идет, пиксели не ловятся... 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. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 36
|
Что за сервер, который отдает стрим? Флеш выдает какие-нибудь ошибки?
Это все политика безопасности. Флеш не может получить исходные данные потока если сервер не выдал политику безопасности. Надо настраивать сервер, который отдает поток. |
|
|||||
|
Сервер все нормально отдает, видео отображается (я же об этом писал). Сервер Wowza. Трансляция идет нормально. Нужно просто детекцию движения сделать типа для него...
Добавлено через 7 минут Мне нужно работать с фрагментом отображаемого видео как с картинкой в принципе. Раз в секунду например дергать фрагмент видео в виде битмапа, и с ним что-то делать... |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 428
|
Касаемо AS3, но для AS2 наверное тоже справедливо
Если мультимедийное содержимое загружено из RTMP-источника, то с помощью методов BitmapData.draw() и SoundMixer.computeSpectrum() нельзя получить графику и аудиоданные во время выполнения. http://help.adobe.com/ru_RU Последний раз редактировалось leofit; 12.01.2010 в 12:20. |
|
|||||
|
Цитата:
И если не возможно через битмап дату, то как тогда можно? З.Ы. транслирующий сервер http://www.wowzamedia.com/ |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 36
|
Цитата:
Мне удалось получать с потока SoundMixer.computeSpectrum() (в AS3 соответственно), но поток я получал с red5 и на самом сервере выставлял такие настройки у приложения: <bean id="rtmpSampleAccess" class="org.red5.server.stream.RtmpSampleAccess"> <property name="audioAllowed" value="true"/> <property name="videoAllowed" value="true"/> </bean> Добавлено через 6 минут И еще вариант с потолка: может попробовать снять битмапдату с родительского клипа? |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 428
|
Информация то верная, но я повторюсь что все это про AS3. Все таки посмотрите, мб во втором as2 доступны какие то методы.
А вообще в оригинальном родном FMS есть такая штука 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 |
|
|||||
|
|
|
|||||
|
Регистрация: Dec 2009
Сообщений: 428
|
да, оно
|
|
|||||
|
ну вроде врубили доступ... только как в AS2 применить указанный пример? он вроде там какой-то снэпшот делает....
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|