Viendo Torrent TV en la Raspberry Pi

Todo comenzó con el hecho de que la amada esposa pidió una televisión completa (el hecho es que no vivimos en Rusia). Está claro que IPTV en nuestro tiempo no es un problema, pero no había ningún deseo de conectar un satélite para un par de canales, y el cónyuge inmediatamente se negó a ver la televisión en una PC. Por cierto, el Raspberry Pi B + resultó estar a la mano. Se discutirá más a fondo.

Raspbmc (ahora llamado OSMC ) fue elegido como la distribución principal de "raspberry" . No describiré el proceso de instalación en detalle, ya que es muy simple y consiste en implementar el archivo en una tarjeta Micro SD. Y cualquier especialista de TI puede hacer frente a la configuración de la "frambuesa" para acceder a la red.

Mirando hacia el futuro, no puedo evitar mencionar que ya había un artículo sobre Habr sobre Torrent-TV basado en XBMC , pero hay una implementación completamente diferente y, como me pareció, es menos conveniente:

  • los canales van por la lista general;
  • sin guía de programa;
  • No hay archivo de espectáculos pasados.

Bueno, pase a la parte más interesante.

Problema


Parece que todo es más simple: tomamos las instrucciones y nos alegramos, ¡pero no estaba aquí! Es aquí donde comienzan las trampas. Ahora en orden:

  1. Ace Engine: no funciona en Raspberry;
  2. Ace Engine solo funciona con localhost.

Nos ocuparemos de ellos.

Piedra número 1 aceptamos "tal cual" y pasamos a la piedra número 2.

En resumen, Ace Engine se ejecuta en dos puertos: 6878 para control de flujo y un puerto arbitrario para transmisión directa de video. El primero escucha formalmente todas las interfaces, pero acepta comandos solo de localhost, el segundo inicialmente escucha solo 127.0.0.1. Y para conectarnos desde Malinka, necesitamos acceso a ambos puertos.

Por lo tanto, no hay otra opción que usar el servidor del cliente ("Malinka" - PC). Hemos decidido el modelo, sigamos adelante.

Configuración de la PC


Por supuesto, antes que nada ponemos AceStream en. Puedes poner todo (motor + reproductor + plugin de navegador), pero pongo solo el motor en sí. No voy a ver televisión en la PC.

Ahora tenemos que hacer reenvío de puertos. La versión más obvia de netsh , desafortunadamente, no sabe cómo hacer portproxy en 127.0.0.1. Y no había ningún deseo de cercar NAT completo con avance en Windows 7. La salvación se encontró en Internet en forma de un puerto unix de la utilidad rinetd para Windows.
Entonces, necesitamos redirigir dos puertos, uno que sabemos, el segundo se actualiza cada vez que se inicia Ace Engine y se escribe en el archivo acestream.port (en la carpeta donde está instalado AceStream). En mi caso, Ace funcionará todo el tiempo, por lo que está bien con la opción de inicio automático junto con la PC.

En este punto, cualquiera puede hacer lo que le parezca, pero puse el siguiente archivo en el inicio por lotes:

start /d "c:\Users\Lexs\AppData\Roaming\ACEStream\engine\" ace_engine.exe
ping 127.0.0.1 -n 10 > nul
cd "c:\Users\Lexs\AppData\Roaming\ACEStream\engine\"
set /p port=<acestream.port
@echo 10.100.0.50 36001 127.0.0.1 6878 > rinetd.conf
@echo 10.100.0.50 36002 127.0.0.1 %port% >> rinetd.conf
start /d "c:\Users\Lexs\AppData\Roaming\ACEStream\engine\" rinetd.exe

10.100.0.50: dirección de PC en la red doméstica. Con la configuración de PC hecha, sigue adelante.

Configuración del complemento


La dirección IP para conectarse a AceStream se puede configurar a través de la configuración del complemento GUI, y tendrá que hacer un "truco sucio" con los puertos. Recogemos el archivo SSH y nos conectamos a la "frambuesa". A continuación, necesitamos editar el script de Python ubicado en:

/home/pi/.kodi/addons/script.torrent-tv.ru/ts.py

En él, debe especificar los puertos que seleccionamos para el reenvío, en mi caso, de esta manera:

    239         if defines.ADDON.getSetting('web_port'):
    240             self.webport = defines.ADDON.getSetting('webport')
    241         else:
    242             self.webport = '36001'
    243         if defines.ADDON.getSetting('port'):
    244             self.aceport = int(defines.ADDON.getSetting('port'))
    245         else:
    246             self.aceport = 36002

¡Guardamos, reiniciamos el complemento Torrent-TV y disfrutamos del trabajo completo del complemento en la "frambuesa"!

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


All Articles