Автор Тема: AceProxy: HTTP прокси для Ace Stream  (Прочитано 1521056 раз)

ValdikSS

  • Разработчик
  • Sr. Member
  • *****
  • Сообщений: 491
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #15 : Сентябрь 02, 2013, 11:32:04 »
Как получится напишите. А то я сам пробовал пересылать реальные заголовки. Но все плееры, кроме VLC, почему-то плюются на них. Почему не пойму. Ведь XBMC при прямом подключении нормально воспроизводит. А вод через проксю посылает лесом.
Это, скорее всего, из-за Transfer-Encoding: chunked, его не нужно посылать.

ValdikSS

  • Разработчик
  • Sr. Member
  • *****
  • Сообщений: 491
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #16 : Сентябрь 02, 2013, 11:34:44 »
А тем, что у них стоит большой внутренний буфер (Мегабайт 20 предположительно, у vlc 800 килобайт). И опустошают тем самым буфер Ace. В результате чего Ace откладывает передачу данных на неопределенное время (увеличивается с каждым опустошением). Через 2 минуты эта пауза увеличивается на минуту. Плееры считают, что поток плохой и отключаются от него.
Это я более-менее поборол задержкой старта (сейчас по умолчанию стоит 1 секунда) и обработкой PAUSE/RESUME. Сейчас проверю на телеке, минут через 10 напишу, как оно.
На нескольких устройствах вы смотрели одновременно один и тот же канал? Неудобство заключается именно в этом. Нельзя семьей вместе смотреть какой-то один канал. А жене потом пойти на кухню готовить и смотреть его на планшете. Это Вам ситуация из жизни, так сказать.
Это да. Я изменил то сообщение, а вы, видимо, не увидели изменений.
Цитировать
Несколько потоков поддерживаются, но если два пользователя попытаются смотреть один и тот же поток, у первого он оборвется, нужно мультиплексировать его, а это не так просто, как сначала может показаться.

const86

  • Разработчик
  • Hero Member
  • *****
  • Сообщений: 903
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #17 : Сентябрь 02, 2013, 11:47:20 »
Это, скорее всего, из-за Transfer-Encoding: chunked, его не нужно посылать.

Параметр Transfer-Encoding: chunked очень важен. Так как в live потоки имеют неограниченную длину, этот параметр явно указывает плееру на это. А так же в начале потока и по всему потоку встречаются конструкции \r\n1ffd90\r\n. Которое указывает плееру какой длины будет следующий поток. Из-за чего будет рассыпание канала. Но его можно игнорировать если Вы используете urllib. Все преобразования потока он уже проводит. В таком случае вам и не нужно пересылать реальный заголовок этого достаточно.

Это я просто столкнулся с проблемой, что на Mono криво реализован класс WebResponse. И в линуксе он забивает весь процессор. Из-за чего пришлось использовать прямое (через сокет) подключение к acestream веб-серверу. А тут такая засада. Неделю разбирался, что за 1ffd90, и разобрал по каждой строчке WebResponse, пока не понял в чем загвоздка :).

const86

  • Разработчик
  • Hero Member
  • *****
  • Сообщений: 903
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #18 : Сентябрь 02, 2013, 11:48:16 »
Это я более-менее поборол задержкой старта (сейчас по умолчанию стоит 1 секунда) и обработкой PAUSE/RESUME. Сейчас проверю на телеке, минут через 10 напишу, как оно.

Я так понимаю, что на PAUSE/RESUME, вы приостанавливаете передачу данных клиенту?

ValdikSS

  • Разработчик
  • Sr. Member
  • *****
  • Сообщений: 491
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #19 : Сентябрь 02, 2013, 11:56:56 »
Параметр Transfer-Encoding: chunked очень важен. Так как в live потоки имеют неограниченную длину, этот параметр явно указывает плееру на это. А так же в начале потока и по всему потоку встречаются конструкции \r\n1ffd90\r\n. Которое указывает плееру какой длины будет следующий поток. Из-за чего будет рассыпание канала. Но его можно игнорировать если Вы используете urllib. Все преобразования потока он уже проводит. В таком случае вам и не нужно пересылать реальный заголовок этого достаточно.
Что такое chunked encoding я знаю, именно потому, что я использую urilib и он все сам восстанавливает, я его не отсылаю.
[/quote]

Сейчас вот пробую смотреть на Samsung, прерывается. Сейчас попробую увеличить задержку при загрузке, и еще можно сделать задержку после буфферизации во время просмотра.
Я так понимаю, что на PAUSE/RESUME, вы приостанавливаете передачу данных клиенту?
Не только передачу клиенту, но и чтение с Ace.

const86

  • Разработчик
  • Hero Member
  • *****
  • Сообщений: 903
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #20 : Сентябрь 02, 2013, 12:04:52 »
Сейчас вот пробую смотреть на Samsung, прерывается. Сейчас попробую увеличить задержку при загрузке, и еще можно сделать задержку после буфферизации во время просмотра.
Не только передачу клиенту, но и чтение с Ace.

Проблема в том что PAUSE AceStream отсылает если не достаточно скорости для непрерывного воспроизведения. И видать не решает проблему долгой задержки от AceStream.
Я решил эту проблему созданием промежуточного буфера и таймаутом ожидания данных от AceSteram.

ValdikSS

  • Разработчик
  • Sr. Member
  • *****
  • Сообщений: 491
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #21 : Сентябрь 02, 2013, 12:10:10 »
Проблема в том что PAUSE AceStream отсылает если не достаточно скорости для непрерывного воспроизведения. И видать не решает проблему долгой задержки от AceStream.
Я решил эту проблему созданием промежуточного буфера и таймаутом ожидания данных от AceSteram.
Сейчас убрал обработку PAUSE/RESUME и поставил задержку в 3 секунды — более-менее работает. А буфер у меня и так есть.

На телевизоре поставил буфер 0.5мб, в прокси поставил задержку старта в 3 секунды, буфер в 40кб и неподчинение PAUSE/RESUME, сначала поплевался, а сейчас уже 10 минут все без буфферизации и без PAUSE со стороны Ace.
« Последнее редактирование: Сентябрь 02, 2013, 12:26:48 от ValdikSS »

yasen

  • Newbie
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #22 : Сентябрь 02, 2013, 13:26:05 »
Добрый день!
А можно какой-нибудь мануал по запуску этого прокси в ubuntu server?

ValdikSS

  • Разработчик
  • Sr. Member
  • *****
  • Сообщений: 491
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #23 : Сентябрь 02, 2013, 13:34:39 »
Добрый день!
А можно какой-нибудь мануал по запуску этого прокси в ubuntu server?
Следуйте шагам, которые расписаны в репозитории. В общем, вам нужно поставить gevent и все.

Сделал, кстати, задержку после RESUME.
Вот видео, как это работает: http://www.youtube.com/watch?v=DcI9ag1ak8A

yasen

  • Newbie
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #24 : Сентябрь 02, 2013, 15:38:28 »
Сделал вроде все по инструкции, но в консоли получил:
Цитировать
02.09.2013 15:32:13 INFO HTTP Server started.
02.09.2013 15:32:18 ERROR AceHandler ACE Exception while creating new instance of ace! 'Socket creation error! Ace is not running? [Errno 111] Connection refused'
02.09.2013 15:32:18 WARNING root Dying with error
192.168.1.59 - - [02/Sep/2013 15:32:18] code 500, message Internal Server Error
192.168.1.59 - - [02/Sep/2013 15:32:18] "GET /pid/e82f0854d5fbadb76 HTTP/1.1" 500 -
02.09.2013 15:32:18 ERROR AceHandler ACE Exception while creating new instance of ace! 'Socket creation error! Ace is not running? [Errno 111] Connection refused'
02.09.2013 15:32:18 WARNING root Dying with error
192.168.1.59 - - [02/Sep/2013 15:32:18] code 500, message Internal Server Error
192.168.1.59 - - [02/Sep/2013 15:32:18] "GET /pid/e82f0854d5fbadb76 HTTP/1.0" 500 -
02.09.2013 15:32:18 ERROR AceHandler ACE Exception while creating new instance of ace! 'Socket creation error! Ace is not running? [Errno 111] Connection refused'
02.09.2013 15:32:18 WARNING root Dying with error
192.168.1.59 - - [02/Sep/2013 15:32:18] code 500, message Internal Server Error
192.168.1.59 - - [02/Sep/2013 15:32:18] "GET /pid/e82f0854d5fbadb76 HTTP/1.0" 500 -
« Последнее редактирование: Сентябрь 02, 2013, 15:40:11 от yasen »

const86

  • Разработчик
  • Hero Member
  • *****
  • Сообщений: 903
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #25 : Сентябрь 02, 2013, 15:45:45 »
По русски же написано "Ace is not running"

yasen

  • Newbie
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #26 : Сентябрь 02, 2013, 15:49:54 »
По русски же написано "Ace is not running"
Прошу прощения за ламерский вопрос, но как его запустить?

ValdikSS

  • Разработчик
  • Sr. Member
  • *****
  • Сообщений: 491
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #27 : Сентябрь 02, 2013, 15:54:27 »
Прошу прощения за ламерский вопрос, но как его запустить?
acestreamengine-client-gtk

Изменил exception в одном месте, сделайте git pull
« Последнее редактирование: Сентябрь 02, 2013, 16:06:56 от ValdikSS »

yasen

  • Newbie
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #28 : Сентябрь 02, 2013, 16:18:34 »
Прошу прощения за ламерский вопрос, но как его запустить?
acestreamengine-client-gtk
В моем случае это acestreamengine-client-console

Но вот еще какой вопрос - в консоль периодически падает сообщение
Цитировать
02.09.2013 16:20:33 ERROR root aceInit event timeout. Wrong key?
и все каналы перестают работать.
После перзапуска acestreamengine-client-console все нормально показывает
« Последнее редактирование: Сентябрь 02, 2013, 16:26:37 от yasen »

ValdikSS

  • Разработчик
  • Sr. Member
  • *****
  • Сообщений: 491
    • Просмотр профиля
Re: AceProxy: HTTP прокси для Ace Stream
« Ответ #29 : Сентябрь 02, 2013, 16:29:17 »
Цитировать
ERROR root aceInit event timeout. Wrong key?
Да, у меня тоже такое бывает, где-то ошибка в коде, наверное.