Nous regardons des torrents sur smart TV sans SMS ni inscription

Bonjour, Habr.

J'ai décidé de partager l'une des façons dont vous pouvez regarder votre film / série préféré en haute qualité sans visiter de sites stupides qui souhaitent que vous jouiez au casino.

Faites immédiatement une réservation, je ne vous invite en aucun cas à utiliser du contenu piraté. Le piratage est mauvais. Achetez toujours du contenu sous licence.

Eh bien, pour ceux qui veulent regarder le torrent, qui n'est pas protégé par le droit d'auteur, sur leur smart TV, sans attendre le téléchargement, voici une façon intéressante.

J'ai un téléviseur intelligent Samsung, sur lequel j'ai essayé de regarder un film de différentes manières.

J'ai essayé d'installer minidlna sur Ubuntu. Jusqu'à un certain temps, cela fonctionnait très bien, mais un jour, l'application sur le téléviseur a commencé à voler périodiquement. Je n'ai toujours pas compris à quoi cela est lié, une mise à jour infructueuse est peut-être arrivée. Dans tous les cas, vous ne pouviez regarder que du contenu entièrement téléchargé, ce qui n'était pas très intéressant.

J'ai essayé à l'ancienne de télécharger des films sur un disque dur externe et de le brancher sur un téléviseur. Après quelques fois, cela m'a dérangé.

En conséquence, pendant longtemps, j'ai simplement regardé le navigateur intégré au téléviseur. Après un certain temps, cette méthode est devenue terriblement trop.

Je voulais quelque chose de pratique et de simple, et pour ne pas attendre immédiatement que tout le contenu soit chargé.

Vous dites qu'il existe un Chromecast. Mais je voulais tout faire sans appareils supplémentaires chez moi.

Il s'est avéré que le navigateur intégré (contrairement au chrome de bureau) prend en charge HLS. Eh bien, pourquoi ne pas simplement récupérer le flux hls sur l'ordinateur portable et regarder à travers le navigateur.

Et c'est parti.

1. Nous mettons un client torrent


Il y a un paquet npm très cool appelé torrent. Tout irait bien, mais il ne sait pas comment sélectionner un fichier et une liste à télécharger et limiter la vitesse de téléchargement. C'est très important. Mais il est minimaliste, prend les fêtes très rapidement et le secoue parfaitement en mode séquentiel, ce dont nous avons besoin.

J'ai dû fouiller dans les tripes et ajouter les fonctionnalités nécessaires. Et nous avons donc mis torrent d'une fourche

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

Téléchargez un fichier torrent ou un lien magnétique.

Pour obtenir une liste de fichiers, vous devez exécuter la commande info

 torrent info some.torrent | less 

Trouvez le nom de fichier dont nous avons besoin (pas le chemin) et exécutez la commande

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

Si tout va bien, vous verrez des statistiques de téléchargement, le nombre de pairs, etc. Les fichiers seront ajoutés au répertoire actuel. Limite de vitesse en octets / s.

La restriction est nécessaire, car dans mon cas, le torrent obstrue toute la chaîne, le routeur devient mauvais et d'autres freins se produisent entre l'ordinateur portable et la Smart TV. L'essentiel est que la vitesse soit supérieure au débit binaire du flux, sinon il y aura des charges et des tampons.

Création de flux HLS


Installez ffmpeg. Dans mon cas, tout a fonctionné avec le ffmpeg habituel du référentiel.

 apt install ffmpeg 

Nous créons un répertoire public où ira notre flux.

De plus, plusieurs options sont possibles. Si dans le fichier source la vidéo est au format h264 et que l'audio est AAC, vous pouvez essayer de ne pas transcoder le flux. Dans ce cas, exécutez le flux de cette manière

 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 

Si les codecs sont différents, vous devrez transcoder à la volée. Sur mon ordinateur portable, ffmpeg a suivi le flux.

 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 

Avec les options -map 0: 0 et -map 0: 1, nous faisons vibrer les canaux souhaités. Vidéo et piste russe. L'option -map_chapters -1 supprime toutes les ordures au cas où sous la forme d'informations de chapitre, etc.

Vous pouvez regarder les chaînes disponibles avec la commande ffprobe movie.mkv

Créer un serveur


Dans le même dossier où va le flux, vous devez placer le fichier index.html avec le contenu suivant

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <video src="out.m3u8" controls></video> </body> </html> 

Installez un simple serveur http.

 npm i http-server -g 

Nous démarrons le serveur

 http-server -a 0.0.0.0 -c-1 

Regarder un film


Maintenant, sur le téléviseur, il suffit d'ouvrir un navigateur avec l'adresse de votre ordinateur portable, par exemple 192.168.1.200 : 8080 et d'en profiter.

Merci à tous pour votre attention.

Source: https://habr.com/ru/post/fr451958/


All Articles