Доброго времени суток, Хабр.

Решил поделиться одним из способов, как можно посмотреть Ваш любимый фильм/сериал, в хорошем качестве, не посещая всякие стремные сайты, которые так хотят чтобы вы поиграли в казино.

Сразу оговорюсь, я ни в коем случае не призываю Вас использовать пиратский контент. Пиратство это зло. Всегда покупайте лицензионный контент.

Ну, а для тех кто хочет посмотреть торрент, не защищенный авторским правом, на своём смарт телевизоре, не дожидаясь скачивания, ниже интересный способ.

Стоит у меня Samsung смарт тв, на котором я разными способами пытался смотреть кино.

Пробовал установить на Ubuntu minidlna. До какого-то времени это работало довольно удобно, но в один прекрасный день dlna приложение на телевизоре стало периодически вылетать. Я так и не разобрался с чем это связано, возможно прилетел какой-то неудачный апдейт. В любом случае смотреть можно было только полностью скачанный контент, что было не очень интересно.

Пробовал по старинке закачивать кино на внешний hdd, и подкючать в телевизору. Через пару тройку раз это надоело.

В итоге долгое время смотрел просто через встроенный в телевизор браузер. Через какое-то время и этот способ ужасно достал.

Хотелось чего-то удобного и простого и чтобы сразу не дожидаясь пока загрузится весь контент.

Вы скажете, есть Chromecast. Но мне хотелось все сделать без лишних девайсов у меня дома.

Как оказалось встроенный браузер (в отличии от десктопного хрома), поддержвает HLS. Ну так почему бы нам просто не поднять но ноутбуке hls поток, и смотреть через браузер.

И так поехали.

1. Ставим torrent клиент


Есть очень классный npm пакет, называется он torrent. Все бы хорошо, но он не умеет выбирать один файл и списка для скачивания и ограничивать скорость скачивания. Это очень важно. Зато минималистичный, очень быстро подхватывает пиры и отлично качает в последовательном режиме, что нам и нужно.

Пришлось покопаться в нутрях и дописать нужный функционал. И так ставим torrent из форка

npm install 'https://github.com/zim32/torrent.git#master' -g

Качаем торент файл или магнет ссылку.

Чтобы получить список файлов нужно выполнить команду info

torrent info some.torrent | less

Находим нужное нам название файла (не путь) и выполняем команду

torrent some.torrent --select 'FILE_NAME' --downloadLimit 1000000

Если все хорошо, Вы увидите статистику скачивания, к-во пиров и т.д. Файлы будут складываться в текущую директорию. Ограничение скорости в Byte/s.

Ограничение необходимо, потому что в моем случае торент забивает весь канал, роутеру становится плохо и дальше между ноутбуком и смарт тв происходят тормоза. Главное чтобы скорость была выше битрейта потока иначе будут подгрузки и буферизация.

Делаем HLS поток


Устанавливаем ffmpeg. В моем случае все работало с обычным ffmpeg из репозитория.

apt install ffmpeg

Создаем паблик директорию, куда будет идти наш поток.

Далее возможно несколько вариантов. Если в исходном файле видео в формате h264, а аудио AAC, то можно попробовать не перекодировать поток. В этом случае запускаем стрим таким образом

ffmpeg -re -i 'torrent_dir/movie.mkv' -codec copy -map 0:0 -map 0:1 -map_chapters -1 -movflags default_base_moof+frag_keyframe -f hls -hls_playlist_type event ~/www/player/out.m3u8

Если же кодеки отличаются, прийдется перекодировать на лету. На моем ноутбуке ffmpeg успевал за потоком.

ffmpeg -re -i 'torrent_dir/movie.avi' -c:v libx264 -preset slow -r 24 -x264opts fps=24:bitrate=2000:pass=1:vbv-maxrate=4000:vbv-bufsize=8000:keyint=24:min-keyint=24:scenecut=0:no-scenecut  -c:a aac -b:a 256k -map 0:0 -map 0:1 -map_chapters -1 -movflags default_base_moof+frag_keyframe -f hls -hls_playlist_type event ~/www/player/out.m3u8

Опциями -map 0:0 и -map 0:1 мы вибарем нужные каналы. Видео и русская дорожка. Опция -map_chapters -1 удаляет на всякий случай весь мусор в виде информации о главах и т.д.

Посмотреть доступные каналы можно командой ffprobe movie.mkv

Создаем сервер


В ту же папку куда идет стрим нужно положить файл index.html со следующим сожержанием

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<video src="out.m3u8" controls></video>

</body>
</html>

Устанавливаем простой http сервер.

npm i http-server -g

Запускаем сервер

http-server -a 0.0.0.0 -c-1

Смотрим кино


Теперь на телевизоре достаточно открыть браузер с адресом вашего ноутбука к примеру 192.168.1.200:8080 и наслаждаться.

Всем спасибо за внимание.

Комментарии (38)


  1. vvadzim
    15.05.2019 16:17

    есть ещё www.npmjs.com/package/peerflix
    перекодировать на лету он вроде не умеет, но

    • http север поднимает
    • выбирать файл для стриминга позваляет
    • можно указать загружать всё, тогда он отдаст .m3u список воспроизведения


    1. vvadzim
      15.05.2019 16:20

      Ну и в списке зависимостей его и от него покопаться интересно


  1. juDge
    15.05.2019 16:30
    +2

    По мне лучше поставить Plex… просто задач папку для скачки которая будет подключена в библиотеку плекса и вперед… куда интересней будет функционал. Воспросизведение с места остановки, постеры… трейлеры… описание и тд. Поставить трансмишин и торенты будут качатться в бакраунде.


    1. ArSoron
      15.05.2019 16:55

      Если дальше упрощать — то добавить к этому Sonarr/Radarr.


    1. rastych
      15.05.2019 19:11
      +1

      Именно таким путем и пошел — старый макмини с дебианом, на нем трансмишн с вебмордой, в папку которого смотрит plex сервер, бонусом плагин с iptv и vpn
      Показывает на всем отовсюду. Идеальный комбайн


      1. juDge
        15.05.2019 19:15
        +1

        Я на Fedora Atomic развернул все что надо (transmission, plex, samba и тд)… по работе поставил два сервера Plex… докер позволяет это сделать без заморочек


    1. Mentor_Valinor
      16.05.2019 07:34

      согласен. И главное! Он поддерживает стриминг во время закачки. Сам пользуюсь чему весьма рад.


  1. savostin
    15.05.2019 16:43

    Это все на телевизоре происходит или на ноуте? А без ноута никак?


    1. zim32 Автор
      15.05.2019 17:48

      К сожалению никак


      1. UksusoFF
        15.05.2019 18:34

        На старых Самсунгах можно получить root и php. Torrent тоже можно. Гуглить SamyGO.


        1. pfzim
          16.05.2019 08:24

          А кто-нибудь использует SamyGO + Oscam?
          У меня если по какой-то причине Oscam не получил ключ от сервера, то перестает получать последующие запросы от телека на новые ключи и телек приходится перезагружать. Кто-нибудь исправлял у себя такое поведение?


    1. SysBlack
      15.05.2019 20:44
      -1

      Записать на флешку.


  1. divanikus
    15.05.2019 17:04
    +1

    Так а стрим все равно с ноутбука? Как-то не катит на «без доп. устройств».


    1. zim32 Автор
      15.05.2019 17:56
      -3

      Так ноутбук уже был )


    1. Heinhain
      16.05.2019 17:24

      Солидарен. В таком ключе лучше уж завести NAS себе, что б не завязываться на ноуте: вдруг захочется посмотреть, когда ноута нет в квартире (например, другие жильцы в отсутствие хозяина ноута), что тогда?


  1. Shtucer
    15.05.2019 17:12
    +2

    WebTorrent нам не поможет?
    Или, прости, господи, Ace Stream?


    1. Mogwaika
      16.05.2019 16:55

      Ace Stream сказал что будет платным и будет рекламу показывать. Надо срочно искать аналог…


    1. dmitryredkin
      16.05.2019 17:39

      Ace Stream == Malware.
      Точнее, его плагин для браузера. Перехватывает весь трафик и на некоторых сайтах вставляет свою рекламу, причем так топорно, что ломает разметку страниц.
      Ace Stream must die.


  1. lyadnov
    15.05.2019 17:21

    20-метровый hdmi-кабель от компьютера до тв + дешевая китайская беспроводная клавиатура, размером с пульт, решают все эти проблемы на корню.


    1. zim32 Автор
      15.05.2019 18:08
      +1

      Вариантов масса на самом деле, тот же хромкаст и программка есть которая стримит торенты на него. Народ по разному извращается )


  1. PaulZi
    15.05.2019 17:26

    Управлять всем этим через командную строку не надоедает?


    1. zim32 Автор
      15.05.2019 18:13

      Это все равно быстрее чем найти фильм, посмотреть рекламу, браузер на телевизоре не быстрый. Из консоли быстрее получается. Про жесткий диск вообще молчу. Да и ждать скачивания не нужно. Включил и смотришь сразу


  1. Xploit
    15.05.2019 17:28
    +1

    Успешно работает следующее: raspberry pi 3 b+ / libreelec (kodi) / elementum.
    FullHD фильмы играются без лага, при этом проигрывание идет на леты без сохранения на карточку (чанк держит в памяти).


    1. nitro80
      16.05.2019 12:57

      У меня тоже raspberry pi c установленным movian. Намного удобнее плясок с командной строкой.


  1. Iv38
    15.05.2019 18:01

    Андроидная тв-приставка + hdvideobox + acestream. Да, это требует дополнительного девайса, если телевизор не на андроиде. И придется заплатить чуточку денег за расширенный функционал hdvideobox'а, чтобы смотреть торренты. Зато не нужен ноут, библиотека фильмов и сериалов прямо в приложении, как и поиск по трекерам.


    1. Vbeerby
      15.05.2019 20:45

      Но ведь тогда и статью писать не из чего будет!
      Поддержу автора HDVideobox, ведь 2 евро однократно на аккаунт с любым числом пользователей за доступ к торрентам и отключение рекламы это и платой-то не назовешь. Но и бесплатной версии для большинства запросов хватит с лихвой. Я в итоге почти перестал смотреть фильмы из других источников.


    1. Salavat
      16.05.2019 09:12

      У меня почти также: Orange Pi Plus 2E с андроидом + hdvideobox + acestream. WiFi тянет, минимальное кол-во проводов: питание + hdmi. Библиотеку мультфильмов в hdvideobox ценят дети.


    1. VasikAlexey
      16.05.2019 16:43

      Чтобы не видеть залипаний в торрентах с ними, проапгрейдился аж до nvidia shield tv.
      Боксы S905/S912 теперь как страшный сон, не вспоминаю.


  1. rigidsh
    15.05.2019 20:44

    Для Kodi был плагин, который стримил торренты прям с лостфильма(без полной скачки).
    Пользовался сабжем на смарт тв с AndroidTV на борту, прям очень приятно


  1. rudinandrey
    15.05.2019 23:11

    А еще в Интернете есть куча торрент ТВ каналов, кто нибудь знает как все это дело, по типу такого же забирать, переделывать в HLS поток и смотреть на телевизоре? А то любимый torrent-tv приказал долго жить ( попробовал пару альтернатив, ужас ужас ((


  1. ukrazzz
    16.05.2019 13:00

    Fork player. Можно установить на смарт с закрытой системой — переписать параметры подключения к сети. Он будет включаться вместо Megogo


    1. advan20092
      17.05.2019 12:21

      плюсую, способ для самых ленивых. У меня тв вообще никуда не подключен, только к розетке. Сам я смотрю в основном Нетфликс, но иногда включаю что-нибудь для родственников


  1. AcckiyGerman
    16.05.2019 14:04

    Один мой знакомый поставил PopcornTime плагин на Kodi и горя не знал. Работает так же как zona.ru, только без Азино 777


    1. rostislav-zp
      18.05.2019 03:48

      Кстати насчет попкорна. Он вообще не видит фильмы с русской озвучкой.только забугорные трекеры мониторит. Это как-то настраивается вообще? пару лет как пытался заставить его работать, да так и бросил. Остался на hdvideobox на приставке и на fsplayer на win10.ну и ранее упомянутый plex+VPN используется.
      Кстати по теме стриминга на гитхабе есть куча великолепных seedbox проектов. Только для нормальной работы Intel atom не хватает к сожалению. Но на core i3 сидбоксы идут отлично


  1. theWaR_13
    16.05.2019 17:44
    +1

    Спасибо большое комментаторам за множество интересных идей! :)


  1. BaranovEvgeny
    16.05.2019 21:41

    На мой взгляд как-то сложно. Мне больше понравилось торрент клиент + медиасервер на рабочей станции, а смарт тв с пульта позволяет выбрать и запустить воспроизведение. Из минусов толтко то что не запоминает где прервали воспроизведение, но возможно это как-то и решается. Торрентом можно и с телефона управлять, но я предпочитаю влезть с дивана и подойти к компу.


  1. advan20092
    17.05.2019 12:30

    Пиратство не поддерживаю, но платить 400-500 рублей за очередную тягомотину, которую просят включить родственники, а сам я смотреть не буду, считаю избыточным.
    Человек я в этом отношении ленивый, коллекции фильмов уже лет 10 как не собираю и не храню. Настроил на ТВ Fork Player. Вбиваешь название фильма или сериала и выбираешь откуда смотреть. Попадаются и azino и экранки. Но тем не менее в 90% случаев контент вполне смотрибелен.
    Второй способ — приложение Sofa Play на ноутбуке. Скачиваю торрент, кидаю его в окошко программы и фильм начинает воспроизводиться на телевизоре. Работает все через WiFi и DLNA, управление и перемотка с пульта телевизора.
    Для себя, раз в два-три месяца проплачиваю нетфликс и смотрю накопившееся за это время интересные мне фильмы и сериалы.


  1. IvUyr
    18.05.2019 11:44

    Ошибка в тексте, перед установкой сервера
    «мы вибарем нужные».