В версии TSC 1.5.14 я реализовал ряд существенных доработок, позволивших смотреть торрент-телевидение с комфортом на всех доступных мне устройствах, в т.ч. на устройствах на базе чипсета RK3288, ранее считавшегося проблемным. Я уверен, что данная версия TSC заметно улучшит ваше впечатление от технологии Ace Stream на Android-устройствах. В результате доработок, появилась возможность нормального использования BubbleUPnP - его можно выбрать в качестве видеоплеера, а дальше в нем уже настроить работу так, что бы данные уходили на другое ваше устройство, например, на телевизор с поддержкой DLNA.
Однако, прежде чем Вы перейдете к скачиваю и установке новой версии, я настоятельно рекомендую ознакомиться с нижеприведенной статьей. Эта статья отражает мои наблюдения и сделанные на их основе выводы, касающиеся таких аспектов, как понимание и настройка Ace Stream Engine для Android.
Памятка пользователя Torrent Stream Controller (TSC).
Несмотря на заголовок, рекомендации касаются не только пользователей TSC, но и, вообще, любых пользователей торрент-телевидения на основе технологии Ace Stream.
Что такое Ace Stream Engine, как он работает? Данное приложение, дальше я буду называть его "движок", получает требуемый контент из интернета, затем записывает его в буфер и, попутно, отдает в виде http-потока тому видео-плееру, который вы выбрали в начале воспроизведения. Зачем Ace Stream буферизирует контент? Потому что скорость получения контента из интернета может быть значительно выше, чем скорость, требуемая для воспроизведения контента в плеере. Можно привести такую аналогию: представьте себе колодец, из которого жители деревни черпают воду. Если колодец, за счет подземных вод, быстро заполняется, то жителям деревни воды будет хватать всегда и они не почувствуют жажды. В конце-концов все жители запасутся водой, а колодец заполнится и будет "ждать" пока очередной житель придет за водой. Однако, если колодец недостаточно глубокий или же был выкопан в не совсем удачном месте, то возможна такая ситуация, что колодец будет наполняться медленно и жителям не будет хватать воды. В случае с Ace Stream нехватка воды - это когда картинка внезапно замирает и Вы вынуждены ждать, пока буфер движка заполнится, после чего видеоплеер сможет "подчерпнуть" из него очередной набор байтов и отобразить их на экране Вашего телевизора преобразовав их в звук и изображение. И поскольку скорость получения контента из интернета может быть неравномерна, движок создает буфер, что бы сгладить эти колебания: когда скорость получения данных выше скорости потребления (потребление данных - это вывод данных на экран в виде звука и изображения), то буфер будет иметь некоторый избыток данных, что называется "про запас". И если вдруг скорость получения данных из интернета уменьшится, то буфер будет постепенно опустошаться, но плеер (а значит и Вы) не заметите подвоха. Если до опустошения буфера скорость получения данных вновь вернется к высоким значениям, то буфер снова начнет потихоньку "копить запас" и все это на фоне плавной (без замираний) работы плеера.
Вот, собственно, в общих словах, схема взаимодействия основных компонентов: интернет -> движок -> буфер -> плеер. А теперь, перейдем к рекомендациям, касающимся оптимальной работы каждого из этих компонентов.
Интернет.
Интернет должен быть быстрым и безлимитным, причем, стабильно быстрым, а не эпизодически. Требования, предъявляемые к скорости интернета зависят от того, что Вы смотрите - зависит от битрейта контента (об этом позже). Но я бы сказал, что реальная скорость должна начинаться от 1, 5Мб/сек. Однако, скорость - это не единственное требование, предъявляемое к интернету. Ваш провайдер не должен блокировать bittorrent-пакеты. Если он это делает, то у вас не получится посмотреть торрент-телевидение. Еще, желательно, что бы Ваш провайдер выдавал вам внешний IP-адрес, хотя бы динамический. В таком случае, другие пользователи Ace Stream смогут подключаться к Вашему движку и получать от Вас данные, которых нет у них. В конечном счете, это положительно скажется на качестве работы технологии Ace Stream.
Но это еще не все. Я решил отнести к компоненту "Интернет" еще и Ваше домашнее оборудование. Наверняка, у вас дома установлен роутер. Так вот имейте ввиду, некоторые роутеры настолько слабы, что не могут совладать с высокой скоростью интернета. Например, Ваш провайдер предоставляет Вам доступ к интернету на скорости 6 Мб/сек, но из-за слабого роутера фактическая скорость доступа к интернету может снизиться, например, до 2МБ/сек. И если при этом, кто-нибудь из членов семьи тоже пользуется интернетом, то может получиться так, что имеющейся скорости не хватит для комфортного просмотра торрент-телевидения. В-общем, перед первым использованием технологии Ace Stream убедитесь, что на том устройстве, где Вы собираетесь воспользоваться этой технологией скорость интернета достаточна. Для этого можно, например, воспользоваться приложением Speedtest.net.
И еще, при просмотре торрент-телевидения, избегайте Wi-Fi соединения android-устройства с роутером. Несмотря на все громкие числа, 300Mbps, 450Mbps, на деле, любое препятствие (шкаф, стена, сам телевизор) могут существенно снизить реальную скорость получения данных из интернета, её может не хватить для просмотра видео без замираний. Вместо Wi-Fi соединения используйте проводное Ethernet-соединение там, где это возможно.
Видите, как много нюансов, касающихся такой, казалось бы очевидной вещи, как Интернет
Движок (Ace Stream Engine) и буфер.
Я решил объединить описание этих двух компонентов, потому что фактически они - это одно приложение Ace Stream Engine и тесно связаны друг с другом. Фактически, буфер - это часть движка, просто я выносил его в отдельный компонент, что бы наглядней продемонстрировать методику передачи данных от движка плееру.
Мы говорим о реализации движка для Android. Версия движка должне быть не ниже 2.3.1, а в случае устройств, под управлением Android 5.x минимальная версия движка должна быть 3.0.6. Перед просмотром торрент-телевидения, необходимо выполнитель минимальный набор действий, что бы довести движок до "правильной кондиции". И тогда, просмотр торрент-телевидения будет развлечением, а не борьбой
Итак, как мы уже знаем, движок получает данные из интернета и кладет их в буфер, откуда они дальше "уходят" в видеоплеер. Однако, как физически реализован буфер, где он хранится, где хранятся эти байты "про запас"? В Ace Stream Engine буфер может быть организован как в оперативной памяти (ОЗУ) так в постоянной памяти: встроенная (NAND) или же внешняя (sd-карточка, usb-флешка). В настройках движка можно указать одну из огранизаций буфера. Я рекомендую выбрать "ОЗУ": дело в том, что процесс буферизации данных - это постоянная запись на выбранный носитель. И если в качестве носителя Вы выбрали "диск", то данные будут постоянно записываться на него, что приведет к достаточно скорому исчерпанию ресурсов этого носителя. Если в качестве носителя выступает встроенная память (NAND), то при исчерпании ресурса Ваше Android-устройство придет в негодность и Вам придется купить новое. Если же в качестве носителя выступает sd-карта памяти или же usb-флешка, то все ограничится их заменой. С другой стороны, имейте ввиду, что когда Вы выбираете "ОЗУ" в качестве места организации буфера, то это имеет отношение только к Live-потокам, а в случае VOD-потока в любом случае будет использован носитель, по пути, указанному в настройке "Папка кэша". Это связано с тем, что VOD-поток имеет конечную длину и размера оперативной памяти (ОЗУ) скорее всего не хватит для буферизации всего VOD-потока. Поясню, что такое Live и VOD. Live - это контент с неопределенной длиной - трансляция, телевидение. VOD - это контент с известной продолжительностью, например, фильмы. Вы ведь помните, что через Ace Stream можно смотреть не только торрент-телевидение (Live), но и фильмы (VOD).
В-общем, я думаю, будет лучше, если я приведу скриншоты с оптимальными (на мой взгяд) настройками и поясню значение каждой опции и выбранного для неё значения.
Основные настройки (Версия движка: 2.3.1)
1. "Передача данных по мобильной сети". Если включить данную опцию, движок будет получать данные используя мобильный интернет (например, на смартфоне) при условии, что другие каналы (wi-fi, подключение через провод) не доступны. Я рекомендую отключать эту опцию, т.к. торрент-телевидение достаточно требовательно к объему трафика, а в условиях мобильного интернета его часто не хватает. Хотя, выбор за Вами.
2. "Буфер VOD, с.". Размер буфера (того самого колодца) в секундах, который будет организован при VOD-потоке. Как мы помним, VOD-поток (Video On Demand) - это просмотр фильмов через Ace Stream. Как показывает практичка, трех секунд достаточно. Данная настройка говорит о том, что в случае, если интернет будет полностью отключен, то в буфере будет хранится "запас" на три секунды.
3. "Буфер Live, с.". Размер буфера для Live-трансляции (телевидение). Чем больше размер данного буфера, тем большее количество секунд будет "в запасе" у вашего плеера, в случае проблем с интернетом или с источником трансляции. Однако, с другой стороны, чем больше буфер, тем, возможно, дольше будет длиться пребуферизация - стадия, когда вы выбрали телеканал для просмотра и начинает производиться первичное наполнение буфера. Я не могу утверждать точно, но у меня есть подозрение, что продолжительно пребуферизации зависит от размера буфера. Поэтому, начните с 10 секунд, если их будет не хватать, то можно увеличить размер Live-буфера вплоть до 60 секунд.
4. "Объем дискового кэша". Как вы помните, дисковый кэш МОЖЕТ быть использован для Live-потоков и безусловно БУДЕТ использован для VOD-потоков. Для того, что бы сберечь встроенную NAND-память, я подключил USB-флешку к своему android-устройству и указал путь к нему (пункт 7). Размер моей USB-флешки = 32Гб, поэтому я указал размер дискового кэша равным 30720 Мб (30Гб). Это та граница, в рамках которой движок будет держать себя. Другими словами, например, при таких настройках не получится начать просмотр фильм размером 40 Гб, поскольку для его кэширования (буферизации) не хватит места и движок сразу завершит этот VOD-поток с ошибкой. Поэтому, чем больше размер дискового кэша, который Вы можете себе позволить, тем лучше. Вместо 32Гб флешки, например, можно использовать 128 Гб или, вообще, подключить 1 ТБ жесткий диск и указать путь к нему
И что еще важно: при выборе USB-флешки, выбирайте флешки с поддержкой USB 3.0 - это должно быть написано на них. Данные флешки уже весьма распространены и не дороги. И в случае, если ваше устройство поддерживает USB 3.0, что скорость записи в буфер, организованный на такой флешке будет значительно выше, чем при использовании USB 2.0 - в конечном счете, это повлияет на скорость заполнения буфера и ваша USB-флешка не будет узким местов в цепочке компонентов, участвующих в просмотре торрент-телевидения.
Настройки 5 и 6 я пропущу. Не уверен, что они работают, но даже если это и так, то не вижу смысла ограничивать скорость получения данных из интернета и скорость отдачи данных другим участником сети Ace Stream. Если же для вас это критично, можете попробовать указать там требуемые значения, однако имейте ввиду, что если укажете слишком низкую скорость загрузки, то буфер может не успевать заполняться и воспроизведение в плеере будет идти в замираниями, как при медленном интернете. Поэтому, избегайте указания скорости загрузки ниже 1, 5Мб/сек.
7. "Папка кэша". Как уже было сказано, в этой папке будет организован кэш (буфер). По-умолчанию, в этой опции указан путь к папке org.acestream.engine/.ACEStream на вашей внутренней (NAND) памяти и это плохо. Как видите, у меня в качестве носителя кэша выбрана USB-флешка, с целью сохранения ресурса NAND-памяти. Однако, ничего страшного, если вы смотрите только (или в основном) торрент-телевидение и в качестве размещеня Live-буфера выбрали "ОЗУ" (об этом позже) - в этом случае, в указанную здесь папку кэша никакие данные записываться не будут и не стоит беспокоиться о сохранности NAND-памяти. Однако, если Вы часто смотрите фильмы torrent-фильмы, то как и я укажите USB-флешку (или sd-карту) в качестве папки кэша, потому что именно туда будет "скачиваться" фильм в ходе просмотра.
Есть еще один нюанс, касающийся организации буфера во внутренней (NAND) памяти. Дело в том, что на некоторых не сильно дорогих устройствах устанавливается дешевая NAND-память, частая запись в которую приводит к кратковременным (пол-секунды) тормозам ВСЕЙ СИСТЕМЫ Android. Это значит, что если вы смотрите torrent-фильм и в качестве места хранения кэша оставили путь по-умолчанию (т.е. буфер огранизован во внутренней памяти), то при просмотре фильма вы будете наблюдать частые полусекундные замирания картинки, что, конечно, неприятно. И это еще один довод в пользу USB-флешки в качестве места хранения кэша. Однако, при использовании USB-флешки следует учесть другой нюанс: если ваше android-устройство не поддерживает USB 3.0 (а таких сейчас большинство), то скорость записи на эту USB-флешку изначально ограничено значением, приблизительно 2, 8МБ/сек - во всяком случае большего числа мне видеть не доводилось. И в этом случае, если у воспроизводимого фильма битрейт больше 2, 8Мб/сек (например, 5мб/сек), то вы будете наблюдать замирания картинки банально потому, что буфер, организованный на флешке не успевает заполниться из-за ограниченной скорости записи на флешку. Для телевизионных трансляций это не проблема, т.к. они обычно идут с битрейтом не выше 1, 5Мб/сек. В этом плане, конечно, организация кэша во внутренней памяти лишена данного недостатка: NAND-память как правило быстрая и не станет узким место при просмотре фильма с высоким битрейтом, но, как мы помним, ресурс NAND-памяти не слишком большой для такого сценария использования. На устройстве Tronsmart Orion R28 скорость записи в буфер, организованный на внутренней (NAND) памяти, составил 6, 5Мб/сек (это предел скорости моего интернета от провайдера), а скорость записи в буфер на USB 3.0-флешке составила 2, 8Мб/сек. Я выбрал запись на USB-флешку в том числе и потому, что в Tronsmart Orion R28 наблюдались те самые регулярные притормаживания при записи буфера на внутреннюю (NAND) память.
Так что решать Вам. Общий рецепт такой: если чаще смотрите телевидение, то выбирайте USB-флешку, если фильмы, то... снова USB 3.0-флешку и если при этом Ваше устройство не поддерживает USB 3.0, то просто выбирайте фильмы с битрейтом, не превышающим 2МБ/сек.
Расширенные настройки (Версия движка: 2.3.1)
8. "Порт". Порт, на который поступают соединения от других пользователей сети Ace Stream, желающих получить от Вашего движка данные, которых у них нет (p2p-соединения). Не рекомендую менять его без особой необходимости, т.к. именно на этот порт в приложении TSC организуется port-forwarding (номер порта можно изменить и в TSC; надо следить за тем, что бы и в TSC и в движке это было одно и тоже число).
9. "Макс. кол-во соединений". Максимальное количество соединений (возможно, не только исходящих, но и входящих), которое возможно установить на один движок. Движок умеет одновременно транслировать разные потоки, но в случае с TSC это не актуально. Актуальней следующая настройка.
10. "Макс. кол-во соединений на поток". Максимальное количество соединений на один поток (трансляцию). Чем больше данное число, тем выше скорость заполнения буфера, однако и выше нагрузка на процессов. Я бы рекомендовал оставить дефолтное значение 50, потому что если и 50 соединений не хватит для быстрого получения контента, то значит проблема с источником контента.
11. "Расположение кэша". Собственно, место, где будет организован буфер для Live-трансляций: ОЗУ или диск. Выбирайте ОЗУ. Всегда.
12. "Объем кэша, Мб". Какого размера будет буфер в ОЗУ? Данное значение следует указывать с оглядкой на размер ОЗУ на Вашем устройстве и на значение, указанное в настройке 3 "Буфер Live, c.". Представьте, что битрейт транслируемого канала = 1, 5Мб/сек, а "Буфер Live" у вас равен 10 секундам. Тогда, получается, что для 10-секундного буфера понадобится 15Мб, в таком случае, кэша в ОЗУ размером 200Мб хватит с лихвой. Однако, если у Вашего android-устройства небольшой размер ОЗУ (например, 500Мб), а свободной ОЗУ и того меньше, то можно указать меньший размер кэша, например 75Мб. Я оставил значение по-умолчанию.
Видеоплеер.
После изменений, внесенных в версию 1.5.14, почти все плееры подходят для воспроизведения контента через Ace Stream. Однако, я бы рекомендовал определить наилучший плеер методом проб и ошибок. Есть популярные плееры: MX Player, Dice Player, BSPlayer, VLC - выберите тот, который подойдет Вам лучше всего. Но первым делом, проверьте воспроизведение через плеер, идущий в составе прошивки самого Android-устройства. Как показывает практика, такой плеер бывает самым лучшим, если, конечно, поддерживает кодек, использованный при кодировке видеоконтента. Если же "комплектный" видеоплеер не работает как положено или же он не нравится Вам по какой-то причине, то можете перейти к экспериментам с вышеперечисленными плеерами.
Второй важный момент в видеоплеерах - это режим декодирования. Как правило, различают два режима: аппаратный и программный. Сначала следует отдать предпочтение аппаратному декодированию и настроить проверяемый плеер таким образом, что бы он пытался воспроизвести контент используя именно этот режим. Если при этом возникнут проблемы, то следует попробовать программный режим. Следует иметь ввиду, что программный режим декодирования оказывает значительно большую нагрузку на процессор устройства, нежели аппаратное декодирование и не каждое android-устройство сможет выдержать эту нагрузку: если нагрузка будет слишком высока, то воспроизведение будет идти рывками, а не плавно.
Отключение логгирования движка.
Начиная с версии 1.5.15 TSC умеет самостоятельно править конфиг движка с целью отключения избыточного логгирования.
Помните, я писал, что из-за медленной NAND-памяти, буфер, организованный на ней, может приводить к кратковременным (пол-секунды) фризам всей системы. Так вот, даже если вы перенесете организацию буфера на USB-флешку или в ОЗУ, есть еще один инициатор записи на внутреннюю память. Это снова движок. Он пишет свои логи (журнал событий) во внутренню память. Пишет очень интенсивно и размер этих логов быстро достигает 10 МБ, ротируясь файл за файлом. По умолчанию, максимальное число таких вот лог-файлов - два: один текущий, другой "ротированый". Однако, тут важно не то, что они занимают 20 Мб (это мелочи), а то, что запись в текущий лог-файл происходит очень интенсивно. В-общем, для того, что бы прекратить это безобразие следует открыть на редактирование конфигурационный файл движка, распложенный на внутренней памяти устройства по пути: org.acestream.engine/acestream.conf и удалить из него строки:
--log-file
/sdcard/org.acestream.engine/acestream.log
--debug-profile
--log-debug
1
--log-modules
root:D
После этого завершите работу Ace Stream Engine, выбрав пункт "Выход" в его контекстном меню. После данной процедуры, движок перестанет интенсивно писать логи в файлы. Останется пара мелких лог-файлов "acestream_std.log" и "logcat.log", но они уже не будут создавать проблем.
Ручная очистка кэша движка.
Как вы уже знаете, каждый раз, когда Вы смотрите фильмы используя Ace Stream, движок кэширует этот фильм в буфере, хранящемся либо во внутренней (NAND) памяти устройства, либо на USB-флешке или SD-карте. По окончанию просмотра, движок удаляет кэш-файл, однако, почему-то делает это не всегда. И тогда, папка кэша начинает потихоньку наполняться такими "бесхозными" файлами, что приводит к уменьшению полезного пространства на носителе. Поэтому важно хотя бы иногда вручную очищать папку кэша. Это делается просто: в контекстном меню движка выбираете пункт "Очистить кэш" и всё. Если вы решили посмотреть фильм, запустили TSC, а он на экране состояния сразу же перешел в состояние "Завершено", значит папка кэша заполнилась бесхозными кэш-файлами и Вам нужно вручную её очистить описанным выше способом.
Последнее напутствие
Даже когда все идеально настроено и оптимизировано, случается так, что картинка вдруг замирает... Не стоит паниковать. С вашим устройством и приложениями Ace Stream и TSC все в порядке. Просто, к сожалению не бывает идеальных источников трансляций. Каждый раз, когда вы наблюдаете проблемы с воспроизведением, отодвиньте штроку уведомлений и найдите там двухстрочное уведомление от TSC. Во второй строке будет отображено состояние, что-то вроде
[B:28%] СОЕД:16 ЗАГР:450КБ/с РАЗД:180КБ/с [+F]
Буква "B" (Buffering) в первых квадратных скобках как раз означает, что идет процесс наполнения буфера и именно этим обусловлено замирание картинки.
Если там буква "D" (Downloading), то значит идет процесс "накопления запаса" в буфере.
Таким образом, если картинка замерла и в строке состояния буква "B", то дело в плохом источнике ну или же Вы не следовали всем рекомендациям, описанным в этой статье. Если же в строке состояния буква "D" при замершей картинке - значит проблема в видеоплеере, он подвис. Можно немного подождать, но скорее всего в этом случае придется перезапустить трансляцию.
Иногда бывает и так, что при воспроизведение какого-нибудь канала, первые несколько минут изображение замирает из-за буферизации ("B"), но потом ситуация выравнивается и замирания практически сходят на нет.
Внимание! У вас нет прав для просмотра скрытого текста.
Пять минут лицезрел надпись пожалуйста ждите. Приставка X92. Както неочень, хотя список каналов загрузился но на этом все.
0 ответить