Здравствуйте, Denis.
Не работает буферизация в nginx при проигрывании через него потока от
Adobe FMS.
При включении буферизации проигрывание (пока) невозможно.
Вы писали 30 августа 2007 г., 0:14:05:
>>Заметил, что реально данные идут не монотонным единым потоком, а
>>последовательными кусочками
DE> Так и есть, так FMS подстраивается под HTTP.
DE> Поэтому буферизация тоже должна работать,
Тоже верю, что должна, тоже хочу, чтоб работала, но пока не хочет!
Может ты, еще кто-то или даже Игорь что-то подскажут...
DE> но в данном случае вероятно нарушается целостность пакета
DE> из-за маленького размера буфера, можно оставить вот эти строки
DE> из первого конфига:
DE> proxy_buffer_size 8k;
DE> proxy_buffers 512 4k;
DE> proxy_busy_buffers_size 64k;
Прямо так - не помогает. ;-)
DE> Далее менять эти цифры и смотреть на результат.
Ну, "кусочки" выходят очень разные - смотрел вот так.
Нормально играющийся поток, т.е. пока без буферизации.
[toor@fms01 ~]$ tcpdump -p -i lo -n -s 1518 -w - src port 8080 | strings | grep
'Content-Length'|head -n 100
http://pastebin.com/m583c5bfe
Пробую определить максимум
[toor@fms01 ~]$ tcpdump -p -i lo -c 10000 -n -s 1518 -w - src port 8080 |
strings | grep 'Content-Length' | sort -r -t ' ' -k 2 -g | head -n 100
39697 однако
http://pastebin.com/m27952e1
И вот таких, что интересно, тоже дохрена, с длиной 1
[toor@fms01 ~]$ tcpdump -p -i lo -c 10000 -n -s 1518 -w - src port 8080 |
strings | grep 'Content-Length' | sort -t ' ' -k 2 -g | head -n 100
http://pastebin.com/m14b52055
Но вроде все это само по себе не должно создавать проблем? Я вот
подозреваю, что оно не из-за этого не хочет работать... Это же все
больше оптимизация работы...
DE> Если что, у меня есть прокси-дампер на perl,
DE> интересно было бы посмотреть на его запись потока.
flash ->> nginx -> perl-dump-proxy -> FMS
DE> ----- Original Message -----
DE> From: "Vadim A. Umanski" <umanski@xxxxxx>
DE> To: "Denis Erygin" <nginx-ru@xxxxxxxxx>
DE> Sent: Wednesday, August 29, 2007 11:08 PM
DE> Subject: Re[4]: nginx и Adobe FMS
DE> Здравствуйте, Denis.
DE> Получилось!!!
DE> Для начала включил без буферизации с этим конфигом
DE> http://pastebin.com/m15ae1ac2 , сваянным по-быстрому.
DE> Заметил, что реально данные идут не монотонным единым потоком, а
DE> последовательными кусочками - открыл сессию, скачал/передал кусочек
DE> данных, закрыл сессию, далее повторить. Между nginx и FMS все время
DE> видать табуны сессий в состоянии TIME_WAIT.
DE> При этом в HTTP-пакетах в ответе есть проставленный Content-Length: ,
DE> решил попробовать включить буферизацию в nginx. Вот с таким конфигом -
DE> http://pastebin.com/m6bd4c71a . Однако, не заработало.
DE> Проходит буквально несколько пакетиков - и все
DE> [toor@fms01 html]$ tcpdump -A -n -i eth0 port 80 and host 10.253.33.8
DE> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
DE> listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
DE> 22:00:25.274735 IP 10.253.33.8.3159 > xxx.xx.xx.xx.http: . ack 3617351334
win 65337
DE> E..(|.@...Y.
DE> ..!..
DE> +.W.P......f.P..9Z.........
DE> 22:00:30.030300 IP 10.253.33.8.3159 > xxx.xx.xx.xx.http: F 0:0(0) ack 1 win
65337
DE> E..(~.@...W.
DE> ..!..
DE> +.W.P......f.P..9Z.........
DE> 22:00:30.030588 IP 10.253.33.8.3159 > xxx.xx.xx.xx.http: . ack 2 win 65337
DE> E..(~.@...W.
DE> ..!..
DE> +.W.P......f.P..9Z.........
DE> 3 packets captured
DE> 3 packets received by filter
DE> 0 packets dropped by kernel
DE> Типа - смотрю tcpdump'ом, что делается. Пускаю попытку проиграть
DE> поток. Смотрю, жду долго, жму Ctrl-C...
DE> IE, которым это дело играю, просто вешается с этого дела, сволочь...
DE> Печально - я вот подумал, что буферизация может очень даже
DE> пригодиться - когда нагрузка пойдет серьезная. Может, конечно, я
DE> что-то не то включил/выключил/не добавил в конфиге? Или буферизация
DE> тут невозможна и работать не будет? Вот бы понять.
DE> Вадим.
DE> Вы писали 25 августа 2007 г., 3:01:25:
DE>> Думаю почитать все-таки следует тут:
DE>> http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_pass
DE>> А с непрерывной отдачей еще нужно до конца разобраться,
DE>> это больше по части написания модулей.
>>>Еще интересна разница между раздачей роликов и вещанием в стиле
>>>IPTV...
DE>> Особой разницы нет, при раздаче роликов идет реал-тайм видео-поток,
DE>> но это больше от ActionScript кода зависит, там и настраивается.
DE>> ----- Original Message -----
DE>> From: "Vadim A. Umanski" <umanski@xxxxxx>
DE>> To: "Denis Erygin" <nginx-ru@xxxxxxxxx>
DE>> Sent: Saturday, August 25, 2007 2:30 AM
DE>> Subject: Re[2]: nginx и Adobe FMS
DE>> Здравствуйте, Denis.
DE>> Вы писали 25 августа 2007 г., 2:09:49:
DE>>> Привет,
>>>>Не могли бы вы подсказать, можно ли использовать nginx с
>>>>Adobe Flash Media Server ?
DE>>> Можно. В позавчерашнем разговоре, Игорь подтвердил принципиальную
DE>>> возможность непрерывной отдачи данных в модуле и рассказал как это лучше
сделать
DE>>> в контексте nginx.
DE>> А можно ли об этом где-то прочитать?
DE>>> Но в данном случае, вполне достаточно обычного проксирования средствами
nginx,
DE>>> только не в курсе как там дела с POST запросами.
DE>> Еще интересна разница между раздачей роликов и вещанием в стиле
DE>> IPTV...
DE>>> RTMPT - это бинарный RTMP(кодируется base64) вставленный в обычный
POST-запрос,
DE>>> т.е. полная совместимость с HTTP протоколом.
DE>> Очень хорошая новость!
DE>>> Поскольку мне приходилось писать реализацию протокола RTMP на основе
разбора исходников
DE>>> Red5 и анализа пакетов сниффером, могу даже сказать, что принципиально
возможно написать
DE>>> полноценный видео-модуль к nginx и отказаться от Flash Media Server. Но
непонятно, какие могут
DE>>> быть последствия со стороны Adobe (кстати одного хакера уже почти
приговорили к 100 годам,
DE>>> да и Adobe отличилась историей со взломщиком паролей к pdf (Элкомсофт
вроде)).
DE>> Некому разрабатывать такое. Не предусмотрено время на такую
DE>> разработку. Совершенно неинтересно связываться с Адобом. Проще
DE>> легально заплатить денег. Бизнес-план AFAIK никакой партизаньщины не
DE>> предусматривает.
DE>> Nginx хочется внедрить из-за его многочисленных положительных качеств
DE>> и ради возможности логировать и контролировать доступ. Положительный
DE>> опыт эксплуатации nginx на хостинге уже есть, я в восторге! Но тут
DE>> несколько иная специфика.
DE>>> ----- Original Message -----
DE>>> From: "Vadim A. Umanski" <umanski@xxxxxx>
DE>>> To: <nginx-ru@xxxxxxxxx>
DE>>> Sent: Saturday, August 25, 2007 12:31 AM
DE>>> Subject: nginx и Adobe FMS
DE>>> Здравствуйте, уважаемые коллеги!
DE>>> Не могли бы вы подсказать, можно ли использовать nginx с
DE>>> Adobe Flash Media Server ?
DE>>> Идея - FMP (Flash Media Player) на компьютере пользователя общается с
DE>>> FMS (Flash Media Server) на нашем сервере. В документации к FMS видел
DE>>> упоминание о возможности использовать протокол rtmpt (Real Time
DE>>> Messaging Protocol Tunneling), когда rtmp "заворачивается" в HTTP. Не
DE>>> смог, правда, понять, является ли rtmpt:// более или менее обычным
DE>>> HTTP или содержит какие-то особые расширения протокола, которые будут
DE>>> несовместимы, скажем, с использованием прокси-сервера. И не помешает
DE>>> ли еще что-нибудь...
DE>>> Получится ли использовать nginx с FMS ?
DE>>> SY Vadim A. Umanski
DE>>> System Administrator
DE>>> InterNet Services Dept., IP Network Div.
DE>>> Akado (Comcor-TV), Moscow
DE>>> <Work> mailto:umanski@xxxxxxmailto:VUmanski@xxxxxxxxxxxxx
DE>>> <Private> mailto:umanski@xxxxxxxxxxxxxxxx
DE>>> phone: (+7 495) 737 51 79
DE>>> cell: (+7 916) 692 67 89
DE>> SY Vadim A. Umanski
DE>> System Administrator
DE>> InterNet Services Dept., IP Network Div.
DE>> Akado (Comcor-TV), Moscow
DE>> <Work> mailto:umanski@xxxxxxmailto:VUmanski@xxxxxxxxxxxxx
DE>> <Private> mailto:umanski@xxxxxxxxxxxxxxxx
DE>> phone: (+7 495) 737 51 79
DE>> cell: (+7 916) 692 67 89
DE> SY Vadim A. Umanski
DE> System Administrator
DE> InterNet Services Dept., IP Network Div.
DE> Akado (Comcor-TV), Moscow
DE> <Work> mailto:umanski@xxxxxxmailto:VUmanski@xxxxxxxxxxxxx
DE> <Private> mailto:umanski@xxxxxxxxxxxxxxxx
DE> phone: (+7 495) 737 51 79
DE> cell: (+7 916) 692 67 89
SY Vadim A. Umanski
System Administrator
InterNet Services Dept., IP Network Div.
Akado (Comcor-TV), Moscow
<Work> mailto:umanski@xxxxxxmailto:VUmanski@xxxxxxxxxxxx
<Private> mailto:umanski@xxxxxxxxxxxxxxxx
phone: (+7 495) 737 51 79
cell: (+7 916) 692 67 89