![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+4 30.12.13]
Регистрация: Dec 2013
Сообщений: 9
|
Всем здравия, с наступающим.
Делаю проигрыватель для воспроизведения потока с сервера Unreal Media. C их средствами показа (включая Flash Player) работает хорошо, но мой проигрыватель не хочет открывать (flash.net.NetConnection) соединение. В локальной сети поток воспроизводится, в глобальной не хочет. swf-файл проигрывателя лежит рядом с html-страницей на IIS-сервере, который работает по тому же адресу, и в той же операционке, что и сервер UMS. Код стандартный: создаются стандартные объекты, открывается сетевое соединение и запускается поток: package stream { import flash.events.NetStatusEvent; import flash.events.SecurityErrorEvent; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.Event; import flash.events.AsyncErrorEvent; import flash.display.Stage; import flash.display.Sprite; import flash.display.DisplayObjectContainer; import stream.CControls; import org.osmf.net.StreamingItem; import flash.system.Security; public class Player extends Sprite { private var sServerApp:String; private var sFileName:String; private var _connection:NetConnection; private var _conpol:NetConnection; private var _stream:NetStream; private var _video:Video; private var _container:DisplayObjectContainer private var _controls:CControls; // здесь sa = rtmp://domain:5119/vod/MediaRoot, // fn = str_name.f4v // если domain == IP-адрес в локальной сети, всё фацает как положено, если этот адрес в // глобальной сети - connection failed public function PlayRemote(sa:String, fn:String, vid:Video, cont:DisplayObjectContainer) { sServerApp = sa; sFileName = fn; _container = cont; _video = vid; _connection = new NetConnection(); _connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); _connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _connection.addEventListener(AsyncErrorEvent.ASYNC_ERROR, OnAsyncError); _connection.client = new CustomClient(_container, _video, _stream); _connection.connect(sServerApp); } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": trace("cвязь в сети установлена"); connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Поток не найден: " + sServerApp + "/" + sFileName); break; case "NetStream.Play.Start": _controls.OnStart(); break; /* case "NetStream.Play.Stop": break; case "NetStream.Buffer.Full": break;*/ case "NetStream.Buffer.Empty": _controls.OnStop(); break; /* case "NetStream.Buffer.Flush": break;*/ default: trace("событие в сети: " + event.info.code); break; } } private function OnAsyncError(e:AsyncErrorEvent):void { trace("асинхронная ошибка типа " + e.type + ": " + e.text); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function connectStream():void { var cc:CustomClient; _container.addChildAt(_video, 0); _stream = new NetStream(_connection); _stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); _stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, OnAsyncError); cc = new CustomClient(_container, _video, _stream); _controls = new CControls(_container, _stream); cc.Controls = _controls; _stream.client = cc; _video.attachNetStream(_stream); _stream.play(sFileName); // начинает загрузку потока } } } Возникает подозрение, что Flash Player вообще нельзя заставить работать со сторонними серверами, не FMS. В справке попалось, что у FMS собственный AS-интерфейс есть - классы вроде DynamicStream. |
|
|||||
|
Вы уверены что тут (rtmp://domain:5119/vod/MediaRoot) нужно порт указывать ?
Что в трэйсах ? Какие события NetConnection рассылает ? _connection.client может быть обычным объектом (который, к слову "отлавливает" события, например onMetaData или onBWCheck итд). Добавлено через 5 минут Цитата:
Флэш плеер воспроизводить rtmp поток, а кто этот поток транслирует второстепенно. |
|
|||||
|
[+4 30.12.13]
Регистрация: Dec 2013
Сообщений: 9
|
Порт указывать обязательно. Повторюсь, в локальной сети всё работает как нужно, если обращаюсь по глобальному адресу - NetConnection.Connect.Failed.
Насколько мне известно, ф-ции клиента оповещают о событиях в сети после соединения. У меня проблема возникает до соединения. Нужно, чтобы посмотрел кто то, у кого опыт работы с сетями есть. По-моему вопрос больше касается настройки сервера, межсерверного общения и взаимодействия Flash Player'а с обозревателем/сервером... Добавлено через 26 часов 30 минут Цитата:
Последний раз редактировалось mooncar; 30.12.2013 в 22:21. Причина: флуд и сомнительные словообразования |
|
|||||
|
[+4 30.12.13]
Регистрация: Dec 2013
Сообщений: 9
|
Адрес сейчас выложу, только приготовлюсь к приходу гостей.
Порты в раутере открыл (как виртуальные серверы) 80, 8080, 843, 443 и 5119, в корне сервера IIS лежит файл политики, в котором всё разрешено Цитата:
Добавлено через 14 минут Неправильно, 3389 - это порт для "удалённого рабочего стола". И 445 - тоже примерно для того же. okouser, сюда пожалуйста загляните. Заранее благодарю. Добавлено через 25 минут Сейчас заметил, что во время запроса извне, UMS открывает ненадолго входящее соединение через свой порт, но проигрыватель ничего не показывает. Соединение быстро закрывается. Видимо, дело в политике всё же. Для чтения файла политики я открыл порт 843. |
|
|||||
|
[+4 30.12.13]
Регистрация: Dec 2013
Сообщений: 9
|
Несколько раз пытался воспроизвести с удалённого адреса, не получалось вообще. Нужно ещё раз-другой попытаться.
Специфические настройки имеете в виду на UMS? Имя потока: mjes.f4v |
|
|||||
|
[+4 30.12.13]
Регистрация: Dec 2013
Сообщений: 9
|
FMS читает командную строку с дополнительными параметрами. UMS, похоже, только имя файла. Я ещё не добрался до потоков в реальном времени (live streaming), не знаю как там, но для воспроизведения файла UMS берёт только его имя. Для открытия соединения, обязательно нужно указывать протокол://домен:порт/vod/ и имя открытой папки.
Что касается тестирования на других машинах, то только в локальной сети. Тут вообще всё нормально. Проблема возникает именно при обращении снаружи. Я во вложение поместил оба swf-файла, если проверите их у себя, будет хорошо. Но код там стандартный. Отличаются они только адресами в ссылках. Цитата:
Скорее всего, исходя из ваших наблюдений, проблема в операционке, в которой сервера работают. Нужно попробовать поместить UMS в серверную операционку. Я только приступил к AS, когда ошибку эту увидел, подумал было, что со сторонними серверами адобы не благословляют общаться. Может, к этому всё и идёт? |
|
|||||
|
[+4 30.12.13]
Регистрация: Dec 2013
Сообщений: 9
|
Всех с новым годом, и большое спасибо okouser за поддержку. Всегда буду рад содействовать в меру возможностей.
Добавлено через 25 часов 54 минуты Заглянул в журналы серверов. Здесь запись от 30.12.2013 сервера IIS: #Software: Microsoft Internet Information Services 5.1 #Version: 1.0 #Date: 2013-12-30 01:57:34 #Fields: time c-ip cs-method cs-uri-stem sc-status 01:57:34 188.162.15.87 GET /Default.htm 200 01:57:34 188.162.15.87 GET /favicon.ico 404 02:44:14 91.188.124.225 GET /search 404 02:46:51 91.188.124.225 GET /search 404 02:49:52 91.188.124.225 GET /search 404 02:53:04 91.188.124.225 GET /search 404 02:53:14 91.188.124.225 GET /search 404 02:56:52 91.188.124.225 GET /search 404 03:01:05 91.188.124.225 GET /search 404 03:01:13 91.188.124.225 GET /search 404 03:05:53 91.188.124.225 GET /search 404 03:11:04 91.188.124.225 GET /search 404 03:11:26 91.188.124.225 GET /search 404 03:17:51 91.188.124.225 GET /search 404 03:20:12 82.208.70.191 GET /Default.htm 200 03:20:12 82.208.70.191 GET /favicon.ico 404 03:20:24 82.208.70.191 GET /flash_test/local.html 200 03:20:24 82.208.70.191 GET /flash_test/local.swf 200 03:20:41 82.208.70.191 GET /flash_test/shared.html 200 03:20:41 82.208.70.191 GET /flash_test/shared.swf 200 03:20:51 82.208.70.191 GET /flash_test/mixed.html 200 03:20:51 82.208.70.191 GET /flash_test/shared.swf 304 03:20:51 82.208.70.191 GET /flash_test/local.swf 304 03:24:52 91.188.124.225 GET /search 404 03:31:38 91.188.124.225 GET /search 404 03:37:39 91.188.124.225 GET /search 404 03:42:05 82.208.70.191 GET /Default.htm 304 03:42:05 82.208.70.191 GET /favicon.ico 404 03:42:31 127.0.0.1 GET /iishelp/iis/htm/core/iiabtlg.htm 200 03:43:39 91.188.124.225 GET /search 404 03:58:31 82.208.70.191 GET /flash_test/mixed.html 304 03:58:31 82.208.70.191 GET /flash_test/shared.swf 304 03:58:31 82.208.70.191 GET /flash_test/local.swf 304 04:10:36 82.208.70.191 GET /vod/MediaRoot/str_name.f4v 404 04:28:41 66.249.74.25 GET /robots.txt 404 04:28:43 66.249.74.25 GET /Default.htm 200 04:38:33 66.249.74.25 GET /flash_test/local.html 200 04:43:24 66.249.74.25 GET /flash_test/mixed.html 200 04:45:52 66.249.74.25 GET /flash_test/shared.html 200 04:48:41 66.249.74.25 GET /flash_test/shared.swf 200 04:48:49 66.249.74.25 GET /flash_test/local.swf 200 05:48:59 85.159.33.81 HEAD /Default.htm 200 06:33:42 180.86.192.1 HEAD /Default.htm 200 11:23:50 188.115.186.197 GET /Default.htm 200 11:23:52 188.115.186.197 GET /favicon.ico 404 11:24:11 188.115.186.197 GET /flash_test/local.html 200 11:24:13 188.115.186.197 GET /flash_test/local.swf 200 11:24:15 188.115.186.197 GET /flash_test/local.swf 200 11:24:40 188.115.186.197 GET /flash_test/mixed.html 200 11:24:41 188.115.186.197 GET /flash_test/shared.swf 200 11:34:02 188.115.186.197 GET /flash_test/mixed.html 304 11:34:04 188.115.186.197 GET /flash_test/shared.swf 304 11:34:04 188.115.186.197 GET /flash_test/local.swf 304 13:11:00 37.229.135.69 GET /Default.htm 200 13:11:00 37.229.135.69 GET /favicon.ico 404 13:11:07 37.229.135.69 GET /flash_test/local.html 200 13:11:07 37.229.135.69 GET /flash_test/local.swf 200 13:11:27 37.229.135.69 GET /flash_test/mixed.html 200 13:11:27 37.229.135.69 GET /flash_test/shared.swf 200 13:12:09 37.229.135.69 GET /flash_test/mixed.html 304 13:13:44 37.229.135.69 GET /flash_test/shared.html 200 16:17:27 66.249.76.101 GET /robots.txt 404 16:17:28 66.249.76.101 GET /Default.htm 200 16:24:03 66.249.76.101 GET /flash_test/shared.html 200 16:24:04 66.249.76.101 GET /flash_test/mixed.html 200 16:30:06 66.249.76.101 GET /flash_test/local.html 200 16:35:02 66.249.76.101 GET /flash_test/shared.swf 200 16:35:03 66.249.76.101 GET /flash_test/local.swf 200 16:57:53 5.34.91.45 GET /Default.htm 200 16:57:53 5.34.91.45 GET /ncsi.txt 404 16:57:53 5.34.91.45 GET /HNAP1/ 404 17:16:37 188.115.186.197 GET /Default.htm 200 17:16:42 188.115.186.197 GET /flash_test/shared.html 200 17:16:43 188.115.186.197 GET /flash_test/shared.swf 200 17:16:55 188.115.186.197 GET /flash_test/shared.swf 200 17:16:58 188.115.186.197 GET /flash_test/shared.swf 200 21:07:38 5.45.75.10 GET /Default.htm 200 LogIn User: Anonymous-ID:1096; IP Address: 188.115.186.197; Delivery: RTMP TCP Unicast; Time: 17:24:43 30 December 2013; Resource: mediaroot\mjes.f4v LogOut User: Anonymous-ID:1096; Time: 17:34:03 30 December 2013; KBytes transfered: 47454 LogIn User: Anonymous-ID:1288; IP Address: 188.115.186.197; Delivery: RTMP TCP Unicast; Time: 17:34:07 30 December 2013; Resource: mediaroot\mjes.f4v LogOut User: Anonymous-ID:1288; Time: 17:34:32 30 December 2013; KBytes transfered: 3996 LogIn User: Anonymous-ID:1352; IP Address: 192.168.0.77; Delivery: RTMP TCP Unicast; Time: 21:34:03 30 December 2013; Resource: mediaroot\mjes.f4v LogOut User: Anonymous-ID:1352; Time: 21:41:17 30 December 2013; KBytes transfered: 53010 LogIn User: Anonymous-ID:1116; IP Address: 188.115.186.197; Delivery: RTMP TCP Unicast; Time: 23:16:59 30 December 2013; Resource: mediaroot\mjes.f4v LogIn User: Anonymous-ID:1472; IP Address: 188.115.186.197; Delivery: RTMP TCP Unicast; Time: 23:28:02 30 December 2013; Resource: mediaroot\mjes.f4v LogOut User: Anonymous-ID:1472; Time: 23:28:26 30 December 2013; KBytes transfered: 460 LogIn User: Anonymous-ID:1452; IP Address: 188.115.186.197; Delivery: RTMP TCP Unicast; Time: 23:28:32 30 December 2013; Resource: mediaroot\mjes.f4v LogOut User: Anonymous-ID:1452; Time: 23:29:58 30 December 2013; KBytes transfered: 478 LogOut User: Anonymous-ID:1116; Time: 23:47:26 30 December 2013; KBytes transfered: 790 #Software: Microsoft Internet Information Services 5.1 #Version: 1.0 #Date: 2014-01-03 01:30:39 #Fields: time c-ip cs-method cs-uri-stem sc-status 01:30:39 174.140.166.236 HEAD /Default.htm 200 06:26:06 5.45.75.10 GET /Default.htm 200 12:29:47 178.91.225.202 GET /favicon.ico 404 12:29:51 178.91.225.202 GET /Default.htm 200 12:29:57 178.91.225.202 GET /flash_test/mixed.html 200 12:29:57 178.91.225.202 GET /flash_test/shared.swf 200 12:29:57 178.91.225.202 GET /flash_test/local.swf 200 12:30:16 178.91.225.202 GET /flash_test/shared.html 200 12:30:40 178.91.225.202 GET /flash_test/local.html 200 12:38:39 178.91.225.202 GET /Default.htm 200 12:38:39 178.91.225.202 GET /favicon.ico 404 12:38:45 178.91.225.202 GET /flash_test/local.html 200 12:38:45 178.91.225.202 GET /flash_test/local.swf 200 12:38:53 178.91.225.202 GET /flash_test/shared.html 200 12:38:53 178.91.225.202 GET /flash_test/shared.swf 200 12:39:01 178.91.225.202 GET /flash_test/mixed.html 200 19:51:06 89.136.120.205 GET /cgi-bin/php 404 19:51:06 89.136.120.205 GET /cgi-bin/php4 404 19:51:09 89.136.120.205 GET /cgi-bin/php5 404 19:51:10 89.136.120.205 GET /cgi-bin/php-cgi 404 19:51:11 89.136.120.205 GET /cgi-bin/php.cgi 404 23:05:48 5.45.75.10 GET /Default.htm 200 04:50:27 5.45.75.10 GET /Default.htm 200 Ещё момент такой наблюдается: файл политики, который лежит в корне IIS проигрыватель не читает, как видно в журнале IIS - нет такого обращения. Это может быть следствием неверных действий в ActionScript. Добавлено через 26 часов 0 минут Хотя в справке сообщается, что файл политики читается проигрывателем самостоятельно, без каких то специальных действий в AS-3. Добавлено через 26 часов 5 минут Цитата:
|
|
|||||
|
Ну, фмс, безусловно, надежнее и не так часто падает, это факт.
Хотя, я за бесплатное решение, в частности, red5 ![]() Если нужно знать что сервак отвалился и как-то отреагировать решите это cron-ом. |
|
|||||
|
[+4 30.12.13]
Регистрация: Dec 2013
Сообщений: 9
|
Цитата:
Добавлено через 30 секунд И как с этим бороться? |
|
|||||
|
[+4 30.12.13]
Регистрация: Dec 2013
Сообщений: 9
|
Firewall показывает кратковременное соединение с сервером, где то 2-3 секунды, после оно закрывается, а сервер ничего в журнал не записывает. Если он что то отправляет, обычно пишет, что отправил. В этом случае - ничего.
Попробую установить red5. IIS уже поменял на Apache. Адобы воздвигли множество проблем на пути к счастью запускать в мир и созерцать потоковое видео обыкновенным гражданам, не желающим платить буржуям и стяжателям большие средства за услуги потоковых серверов. В этом явная дискриминация. Нужно написать собственный сервер и проигрыватель, назвать его как-нибудь Shalf Player, а лучше по-русски - на кириллице и запустить в мир. Встречал rtmp-сервер написанный на 'С', но он не для Windows. Есть мнение, что протокол rtmp вообще не приемлемый - это детище Adobe и только им предназначен. Кроме того, говорят, что red5 и подобные для trmp - медленные и требуют много ресурсов. Нужно сделать свой протокол на С++ максимально производительный. Есть желающие этим заняться? |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|