Състоянието на дистрибутираната платформа за организиране на видео хостинг и видео стрийминг PeerTube 6.0. PeerTube предлага независима от конкретни доставчици алтернатива на YouTube, Dailymotion и Vimeo, използваща мрежа за разпространение на съдържание на базата на P2P комуникации и свързване между браузърите на посетителите. Разработките на проекта се разпространяват под лиценз AGPLv3.
Основни нововъведения:
- Добавена е възможност за качване на видео с парола. Паролата може да бъде зададена при качване, импортиране или обновяване, след което само потребителите, знаещи паролата, ще имат достъп до съдържанието. Чрез REST API могат да се задават няколко пароли (например, на всеки потребител може да се даде уникална парола) и да се оттеглят издадени пароли.
- Показ намини в движение на курсора по плъзгач, отразяващ позицията на възпроизвеждане, позволява визуално преместване в потока. Раскадровка с намини се създава по време на зареждане или внос на видео, т.е. поддръжката на намини ще бъде налична само за нови видеа, качени след обновлението до PeerTube 6.0. За създаване на намини за стари видеа администраторът трябва да изпълни командата «npm run create-generate-storyboard-job».
- Добавена е възможност за качване на нова версия на видеото, която може да се използва за обновление на видеото, например, след коригиране на грешка или добавяне на липсваща информация. След обновлението, старата версия на видеото се губи безвъзвратно и по старата връзка става достъпна обновената версия (също така се запазват коментарите и статистиката). Поради факта, че тази възможност може да се използва за злоупотреби, например, за добавяне на реклама след проверка, администраторът трябва ясно да включи поддръжката на качване на обновления на своята платформа.
- Добавена е възможност за прикачване на съдържание към видеото, което позволява да се види списък на епизодите и бързо да се превключва между тях. За определяне на епизодите на страницата с настройки е добавена раздел «chapters», където може да се определи времето на начало и описание на основните моменти в видеото. Епизодите също така автоматично се прехвърлят при внос на видео от YouTube.
- Внесени са промени и оптимизации, основани на стрес-тестове на живо предаване и класически стрийминг на видео с хиляди едновременно участници. Например, оптимизирана е обработката на unicast HTTP в работните потоци, заверяването на заявки ActivityPub, обработката на препоръки, SQL заявки с филтриране по тагове и масови заявки /videos/{id}/views. Добавена е възможност за деактивиране на HTTP логовете.
- Премахната е поддръжката на протокола WebTorrent, а разработката е насочена към използване на протокола HLS (HTTP Live Streaming) с WebRTC за P2P.
- Повишена е ефикасността на видеоплеъра, като автоматично се избира размерът на прозореца, взимайки предвид съотношението на страните на видеото, реализирано е запомнянето на настройките и е премахнато повторното изграждане при смяна на видеото.
- Подобрена е поддръжката на възможности за оптимизация за търсачки (SEO).
- Разширени са средствата за хора с увреждания.
Платформата PeerTube първоначално беше основана на приложението на BitTorrent клиента WebTorrent, стартиран в браузъра и използващ технологията WebRTC за организиране на директен P2P канал за комуникация между браузъри. По-късно вместо WebTorrent беше използван протокол HLS (HTTP Live Streaming) в комбинация с WebRTC, позволяващ адаптивно управление на потока в зависимост от пропускателната способност. За обединение на разпръснати сървъри видеа в обща федеративна мрежа, в която посетителите участват в доставката на съдържание и имат възможност да се абонират за канали и да получават уведомления за нови видеа, беше използван протокол ActivityPub. Предоставеният от проекта уеб интерфейс е построен с помощта на Angular фреймворка.
Федеративната мрежа PeerTube се формира като сътрудничество между свързани помежду си малки сървъри. хостинг видеа, всяко от които има свой администратор и могат да бъдат приети свои правила. Всеки сървър с видео играе роля на BitTorrent тракер, на който са разположени сметките на потребителите на този сървър и техните видеа. Идентификаторът на потребителя се формира под формата на «@име_на_потребителя@домен_на_сървъра». Предаването на данни при гледането се извършва директно от браузърите на другите посетители, които преглеждат съдържанието.
Ако никой не гледа видеото, предаването се организира от сървъра, на който първоначално е качено видеото (използва се протоколът WebSeed). Освен разпределението на трафика между потребителите, гледащи видеото, PeerTube също така позволява на възлите, стартирани от авторите за първоначално публикуване на видео, да кешират видеа на други автори, създавайки разпределена мрежа не само от клиенти, но и от сървъри, а също така осигурявайки отказоустойчивост. Има поддръжка за поточно предаване (live streaming) с доставка на съдържание в P2P режим (за управление на поточното предаване могат да се използват стандартни програми, като OBS).
За да започне излъчването чрез PeerTube, на потребителя е достатъчно да качи видео, описание и набор от тагове на един от сървърите. След това видеото ще стане достъпно в цялата федеративна мрежа, а не само на сървъра за първоначално качване. За работа с PeerTube и участие в разпространението на съдържание е необходим само обикновен браузър и не е нужно да се инсталира допълнителен софтуер. Потребителите могат да следят активността в избраните видеоканали, като се абонират за интересуващи ги канали във федеративните социални мрежи (например в Mastodon и Pleroma) или чрез RSS. За разпространение на видео с използване на P2P комуникации, потребителят може също да добави на своя сайт специален виджет с вграден уеб плейър.
В момента за хостинг на съдържание функционират 1122 сървъра, поддържани от различни доброволци и организации. Ако потребителят не е доволен от правилата за хостинг на видео на определен сървър PeerTube, той може да се свърже с друг сървър или да стартира собствен сървър. За бързо разгръщане на сървъра се предоставя предварително конфигуриран образ във формат Docker (chocobozzz/peertube).
Източник: opennet.ru
