![]() |
|
![]() |
#11 | ||
Senior Member
Регистрация: 15.03.2012
Сообщений: 1,094
|
![]() Цитата:
В вашем варианте нужно делать так:
Цитата:
Я постоянно пытаюсь объяснить на форуме, что bittorrent-протокол ну ваще ни разу не подходит для стриминга, а костыли мы пишем только потому, что контента на торрентах "как грязи". Но все время получаю в ответ - мол "а в ACE Stream все в порядке с перемоткой...". ACE Stream добились нормальной перемотки с помощью того, что пожертвовали кое-чем другим. Они могут проигрывать только потоковое видео. Kodi при потоке по HTTP умеет перепрыгивать сразу через большие куски. А вот при чтение локального файла - вроде как нет (пишу вроде, так как сам до конца еще не разобрался и мне это интересно). Как только Kodi запрашивает у ACE Stream кусок из "будущего", то оно также сообщает об этом ACE и тот начинает приоритезировать новые куски в раздаче. В это время (если этих кусков нет) в Kodi включается сообщение "буферизация". Другими словами - это частный случай реализации в Kodi (просмотр через HTTP). Но в целом, я считаю, что перемотка не такая уж и большая засада. Нужно просто отлавливать немного заранее момент, когда заканчиваются скаченные куски и принудительно ставить на паузу. Чем выше скорость перемотки пользователь врубил, тем больше должно быть кусков, входящих в это самое "заранее".
__________________
RuTracker: http://xbmc.ru/forum/showthread.php?t=2243 Ruhunt.Pulsar: http://xbmc.ru/forum/showthread.php?t=6759 Last.VK: http://xbmc.ru/forum/showthread.php?t=3709 Lovi.fm: http://xbmc.ru/forum/showthread.php?t=6758 |
||
![]() |
![]() |
![]() |
#12 | |||
Senior Member
Регистрация: 15.03.2012
Сообщений: 1,094
|
![]() Цитата:
Цитата:
Пришел к выводу, что ни фига там ничего не выйдет. Думаю надо копать в сторону обратной связи от Player к плагину (как ACE). Без штатных средств Коди (без HTTP Range и все такое...). Цитата:
Я сейчас у себя эксперементирую со следующей хренью... Есть у меня в RuTracker инфо-окошко, которое встраивается в слой контрлов плеера и при паузе показывает статус работы libtorrent`а. Такой же есть у Pulsar, у Torrenter и т.д. Так вот. Сейчас это окошко отрисовывается не правильно, так как заранее не известно разрешение экрана у пользователя и приходится все размеры высчитывать в реал-тайме. Все это потому, что встраивается это инфо-окошко в уже существующий слой. Если же отрисовывать его в новом слое, то можно самостоятельно задать разрешение слоя и рисовать уже со "знанием дела". Kodi потом сам сконвертит изображение в разрешение пользователя. Я решил попробовать следующую схему: Попробовать рисовать все поверх некого прокси-окна. Которое будет выше, чем окно с контролами плеера. При этом все нажатия пульта ловить нашим окном и перекидывать в нижнее. Если этот мега-костыль заработает, то также можно сделать и с отловом перемотки. Ловить нажатие пульта своим окном и если мы уверены, что перематывать "рановато", то не проксировать этот клик ниже (в окно контролов). Вот такая вот идейка... ![]() Update: правда пользователь может нажимать перемотку не через отрисованные контролы, а просто с пульта (вернее так и происходит чаще всего). Может прозрачный прокси-слой попробовать отрисовывать поверх видео?...
__________________
RuTracker: http://xbmc.ru/forum/showthread.php?t=2243 Ruhunt.Pulsar: http://xbmc.ru/forum/showthread.php?t=6759 Last.VK: http://xbmc.ru/forum/showthread.php?t=3709 Lovi.fm: http://xbmc.ru/forum/showthread.php?t=6758 Последний раз редактировалось HAL9000; 29.07.2015 в 01:04. |
|||
![]() |
![]() |
![]() |
#13 | ||
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]() Цитата:
Цитата:
![]()
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
||
![]() |
![]() |
![]() |
#14 | |
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]() Цитата:
![]()
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
|
![]() |
![]() |
![]() |
#15 | |
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]() Цитата:
1. ListItem, передаваемый в setResolvedUrl, автоматически наследует все свойства (инфо-лейблы, картинки) ListItem, из которого он был вызван. 2. Автозакладки и отметки просмотренного (теоретически). Последнее у меня не очень выходит, хотя все свойства вроде бы правильные. Т. е. отметок никаких нет, хотя автозакладки через раз срабатывают. Недостаток только один, но существенный - setResolvedUrl прерывает выполнение текущего скрипта аналогично sys.exit().
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
|
![]()
Кстати, если интересно, при получении контента по http Коди отправляет 3 запроса: HEAD, GET с начала файла и GET с конечной позиции файла.
Код:
13:08:57 T:744 NOTICE: Creating InputStream 13:08:57 T:6020 NOTICE: plugin.video.yatp: HEAD 13:08:57 T:6020 NOTICE: plugin.video.yatp: [('Content-Length', ''), ('Accept-Charset', 'UTF-8,*;q=0.8'), ('User-Agent', 'Kodi/15.0 (Windows NT 6.1; WOW64) App_Bitness/32 Version/15.0-Git:20150721-2f34a0c'), ('Accept', '*/*'), ('Host', 'localhost:8668'), ('Content-Type', 'text/plain')] 13:08:57 T:6020 NOTICE: plugin.video.yatp: Playing media: Zoo.S01E05.HDTV.x264-LOL[rarbg]/zoo.105.hdtv-lol.mp4 13:08:57 T:744 DEBUG: CCurlFile::GetMimeType - http://localhost:8668/media/Zoo.S01E05.HDTV.x264-LOL%5Brarbg%5D/zoo.105.hdtv-lol.mp4 -> video/mp4 13:08:57 T:744 DEBUG: CFileCache::Open - opening <media/Zoo.S01E05.HDTV.x264-LOL%5Brarbg%5D/zoo.105.hdtv-lol.mp4> using cache 13:08:57 T:744 DEBUG: CurlFile::Open(0B8F7C88) http://localhost:8668/media/Zoo.S01E05.HDTV.x264-LOL%5Brarbg%5D/zoo.105.hdtv-lol.mp4 13:08:58 T:3288 NOTICE: plugin.video.yatp: GET 13:08:58 T:3288 NOTICE: plugin.video.yatp: [('Content-Length', ''), ('Accept-Charset', 'UTF-8,*;q=0.8'), ('User-Agent', 'Kodi/15.0 (Windows NT 6.1; WOW64) App_Bitness/32 Version/15.0-Git:20150721-2f34a0c'), ('Accept', '*/*'), ('Range', 'bytes=0-'), ('Host', 'localhost:8668'), ('Content-Type', 'text/plain')] 13:08:58 T:3288 NOTICE: plugin.video.yatp: Playing media: Zoo.S01E05.HDTV.x264-LOL[rarbg]/zoo.105.hdtv-lol.mp4 13:08:58 T:744 NOTICE: Creating Demuxer 13:08:58 T:6680 NOTICE: Thread FileCache start, auto delete: false 13:08:58 T:744 DEBUG: CDVDDemuxFFmpeg::Open - probing detected format [mov,mp4,m4a,3gp,3g2,mj2] 13:08:58 T:6680 INFO: XCURL::DllLibCurlGlobal::easy_aquire - Created session to http://localhost 13:08:58 T:6680 DEBUG: CurlFile::CReadState::Connect - Resume from position 324296002 13:08:58 T:7052 DEBUG: ------ Window Init (DialogBusy.xml) ------ 13:08:58 T:7052 DEBUG: ------ Window Deinit (DialogProgress.xml) ------ 13:08:58 T:6060 NOTICE: plugin.video.yatp: GET 13:08:58 T:6060 NOTICE: plugin.video.yatp: [('Content-Length', ''), ('Accept-Charset', 'UTF-8,*;q=0.8'), ('User-Agent', 'Kodi/15.0 (Windows NT 6.1; WOW64) App_Bitness/32 Version/15.0-Git:20150721-2f34a0c'), ('Accept', '*/*'), ('Range', 'bytes=324296002-'), ('Host', 'localhost:8668'), ('Content-Type', 'text/plain')] 13:08:58 T:6060 NOTICE: plugin.video.yatp: Playing media: Zoo.S01E05.HDTV.x264-LOL[rarbg]/zoo.105.hdtv-lol.mp4 13:08:58 T:744 DEBUG: XFILE::CFileCache::Seek - waiting for position 324361487. 13:08:58 T:6680 INFO: CFileCache::Process - Hit eof. При прыжках выдается http-запрос с заголовком 'Range' с нужной позиции в байтах. При перемотке никаких запросов не выдается. Т. е. при реализации выдачи контента по http на сервере прыжки отлавливать можно, но перемотку - никак.
__________________
Координатор русского перевода Kodi: https://www.transifex.com/projects/p/kodi-main/ ------------------------------ Raspberry PI 2 + LibreELEC 8 (Kodi 17) Samsung Galaxy Tab A 10.1 + Kodi 17 for Android ------------------------------ Читаем и пополняем Википедию форума: http://xbmc.ru/wiki ------------------------------ На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум. |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Регистрация: 15.03.2012
Сообщений: 1,094
|
![]()
В общем, убил я сутки на попытку сделать некое прокси-окно (о чем писал выше). Не вышло у меня в итоге. Событие отлавливаю через "onAction". Пробую послать в слой с контролами плеера (через внутреннюю функцию "Action(id,window)". Не видят они этих экшенов. Может я не правильно определяю слой, в котором висят контролы плеера? Не знаю. Позже еще поковыряю немного в эту сторону. Может что получится.
Цитата:
Такими ссылками можно сразу убить двух зайцев (два верхних пункта): 1. В ссылке мы передадим всю инфу по лейбам и картинкам (и плеер уже самостоятельно сварганит ItemInfo). 2. Такие ссылки очень хорошо сохраняются в закладках. Оффтоп: Надо вообще уходит от колекционирования фильмов в виде реальной их записи на диск. Мне кажеться, надо просто сохранять такие вот ссылки на торрент-стримы и прилеплять рядом файлы NFO для наведения всякой красоты. Плюс еще все это брахло синхронизировать с другими своими Коди через какой-нибудь Яндекс.Диск (тут еще и бэкап автоматом нарисовывается). И все. Коллекция ссылок на винте будет занимать пару мегабайт (от силы) а де-факто мы имеем коллекцию FullHD на сотни терабайт. Всякие домашние файло-помойки можно выкидывать на свалку...
__________________
RuTracker: http://xbmc.ru/forum/showthread.php?t=2243 Ruhunt.Pulsar: http://xbmc.ru/forum/showthread.php?t=6759 Last.VK: http://xbmc.ru/forum/showthread.php?t=3709 Lovi.fm: http://xbmc.ru/forum/showthread.php?t=6758 |
|
![]() |
![]() |
![]() |
#18 | ||
Senior Member
Регистрация: 15.03.2012
Сообщений: 1,094
|
![]() Цитата:
Цитата:
Если можно было бы увеличивать программно этот таймаут, то и проблем не было бы. Перед началом фильма увеличил, после окончания вернул старое значение. Но Коди не поддерживает программное изменение этого параметра.
__________________
RuTracker: http://xbmc.ru/forum/showthread.php?t=2243 Ruhunt.Pulsar: http://xbmc.ru/forum/showthread.php?t=6759 Last.VK: http://xbmc.ru/forum/showthread.php?t=3709 Lovi.fm: http://xbmc.ru/forum/showthread.php?t=6758 |
||
![]() |
![]() |
![]() |
#19 | |
Member
Регистрация: 25.01.2013
Сообщений: 85
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#20 | |
Senior Member
Регистрация: 21.06.2011
Сообщений: 4,751
|
![]() Цитата:
__________________
Мой репозиторий: https://github.com/tdw1980/tdw/raw/master/repository.tdw1980-1.0.3.zip ![]() https://yoomoney.ru/bill/pay/AHwFUQEpwUU.230131 |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Торрент ТВ для убунту | dimmi777 | Помощь по плагинам | 226 | 11.05.2021 13:25 |
Торрент-ТВ и iPhone/iPad | Alex2013 | Поддержка платформы Mac | 28 | 13.03.2015 17:13 |
торрент | Алексей | Подсказки, описания и FAQ по XBMC | 1 | 14.01.2011 22:43 |