Tabla de contenido:

Hacer un dispositivo Chromecast como Raspberry Pi: 7 pasos
Hacer un dispositivo Chromecast como Raspberry Pi: 7 pasos

Video: Hacer un dispositivo Chromecast como Raspberry Pi: 7 pasos

Video: Hacer un dispositivo Chromecast como Raspberry Pi: 7 pasos
Video: TODO ESTO PUEDES HACER CON UNA RASPBERRY PI 😈💻 2024, Mes de julio
Anonim
Hacer un dispositivo Chromecast como Raspberry Pi
Hacer un dispositivo Chromecast como Raspberry Pi
Hacer un dispositivo Chromecast como Raspberry Pi
Hacer un dispositivo Chromecast como Raspberry Pi
Hacer un dispositivo Chromecast como Raspberry Pi
Hacer un dispositivo Chromecast como Raspberry Pi
Hacer un dispositivo Chromecast como Raspberry Pi
Hacer un dispositivo Chromecast como Raspberry Pi

Ya tengo un Chromecast v2 (el redondo, el dispositivo USB es v1 y v3 parece v2 pero con una G en i y tiene un bloque de alimentación con puerto Ethernet) y me encanta, es muy divertido de usar y fácil de configurar, PERO …

Sí, hay un PERO, cuando estoy en un lugar donde no tengo acceso a Internet y no puedo usar mi plan de datos, NO PUEDO UTILIZARLO para transmitir medios locales desde mi teléfono o tableta, incluso cuando no lo tengo No necesito Internet en absoluto, Google en la "gran sabiduría" de ellos decidió no dejarlo ni siquiera arrancar sin Internet, eso es malo si terminas necesitándolo para transmitir

Tengo un mini enrutador GL-MT300A, es muy, muy pequeño y puede ser alimentado por un teléfono, una batería externa o un cargador de teléfono, lo uso para emparejar mi Chromecast con él y cuando necesito Internet, simplemente conecto el enrutador al cable red o si solo tienen WiFi, admite conectarse a eso como cliente y actuar como enrutador al mismo tiempo también, ahora el problema persiste, no hay Internet = no hay Chromecast de medios locales para usted. Aquí entra en juego la Raspberry Pi Zero W (W viene de Wireless, tiene una tarjeta build it, * yaay *, Bluetooth también pero no lo necesito: P)

Paso 1: lo que necesita y lo que obtiene

Lo que necesita y lo que obtiene
Lo que necesita y lo que obtiene
Lo que necesita y lo que obtiene
Lo que necesita y lo que obtiene
Lo que necesita y lo que obtiene
Lo que necesita y lo que obtiene

Necesitas:

  • Raspberry Pi Zero W (mi está en estuche acrílico)
  • Cable HDMI (es bueno tener uno con tapas de plástico)
  • Fuente de energía (cargador de teléfono en mi caso)
  • Adaptador Mini HDMI (macho) a HDMI completo (hembra) (viene con PI)
  • Tarjeta SD de 8 Gb o más (uso una 16 Gb de Medion)
  • Lector de tarjetas SD (obtuve mi regalo con un power bank de Hama)
  • Conexión a Internet y PC para descargar "Raspbian Stretch Lite"
  • Etcher Portable (escritor de imágenes de tarjeta sd) -> get Etcher para Windows x86 (32 bits) (portátil) también funcionará en x64
  • Descargue Putty desde el enlace proporcionado o busque en Google

Conseguirás:

Un objetivo de transmisión para archivos de video de servicios en línea como YouTube y medios locales (video, audio e imágenes) para Android (Raspicast), Windows y cualquier sistema operativo que admita una aplicación cliente SSH

No requiere Internet si los medios que le está enviando están almacenados en su dispositivo o en algún lugar de la red local

Puede obtener un control remoto del objetivo como reproducción, elegir la fuente, reproducir / pausar, volumen, salir. (Botón SSH o SSH de frambuesa, masilla)

Obtienes un tiempo de arranque del dispositivo muy rápido, para una Raspberry Pi Zero, alrededor de 10 segundos

Obtiene un fondo de pantalla predeterminado y una forma de mostrar fondos de pantalla aleatorios con solo presionar un botón que no ocupan espacio en su dispositivo y permanecen allí hasta que se reinicia. (se puede cambiar para que sea persistente, luego mostraré cómo)

Acepta varios tipos de streams (como HTTP, HTTPS, RTSP) y con la ayuda de una computadora, laptop en mi caso, Sopcast, Acestream así como medios locales con subtítulos externos (como srt, sub)

Incluso puede entregar archivos a través de HTTP almacenados en su computadora, con la ayuda de un servidor web portátil de un solo archivo al reproductor

Hay más por descubrir, agregar o eliminar, según sus necesidades

Paso 2: obtener el software y las herramientas para instalar en la tarjeta SD

Obtener el software y las herramientas para instalar en Sdcard
Obtener el software y las herramientas para instalar en Sdcard
Obtener el software y las herramientas para instalar en Sdcard
Obtener el software y las herramientas para instalar en Sdcard
Obtener el software y las herramientas para instalar en Sdcard
Obtener el software y las herramientas para instalar en Sdcard

Descargas:

Ahora vaya a https://www.raspberrypi.org/downloads/raspbian/ y descargue "Raspbian Stretch Lite"

Vaya a https://www.balena.io/etcher/ y obtenga Etcher para Windows x86 (32 bits) (portátil) (también hay versiones de Linux y Mac)

Descargue la masilla de

Ahora que tienes todo esto vamos a iniciar Etcher e insertar la tarjeta en el lector de tarjetas y el lector en la computadora: P

En Etcher, haga clic en seleccionar imagen y elija el archivo zip descargado (para mí en el momento en que escribo esto es "2018-11-13-raspbian-stretch-lite.zip", luego seleccione el lector de tarjetas de la lista que se muestra y al menos haga clic en flash, pedirá permiso al User Account Control (UAC), lo permitirá, necesita acceder físicamente a la sdcard en modo exclusivo para escribir la imagen. Cuando termine, desenchúfela, ya está expulsada por Etcher, y vuelva a colocarla en, habrá una partición de arranque de ~ 50Mb y se le pedirá que formatee una "partición sin formato" NO LO FORMATE, Windows no puede leer particiones de Linux y hay una partición ext4.

Necesita crear 2 archivos en la partición de arranque.

un nuevo archivo sin extensión llamado ssh

otro llamado wpa_supplicant.conf

El contenido del "wpa_supplicant.conf" es el siguiente

país = GB

ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "YOUR_WIFI_SSID" psk = "YOUR_SUPER_SECRET_PASSWORD"}

Ahora conéctelo a su Raspberry Pi y conecte el dispositivo de salida HDMI (también conocido como TV, proyector, etc.) y a la alimentación.

La última línea antes del inicio de sesión se mostrará una IP. (Como regla general, es bueno hacer que la asignación de direcciones esté estática para su enrutador, vea la imagen de un enrutador Linksys.

Paso 3: Actualizar y configurar todo

Actualizar y configurar todo
Actualizar y configurar todo

Actualice su sistema:

sudo apt-get update

sudo apt-get upgrade sudo apt-get update sudo rpi-update

Una vez hecho todo, se reiniciará y tendrá una ventana de masilla que está inactiva, ciérrela y comience de nuevo con los mismos datos del paso anterior.

Ahora instalaremos omxplayer, no es necesario compilarlo desde la fuente, ya que forma parte de los repositorios de Raspbian.

sudo apt-get install omxplayer fonts-freefont-ttf

Quiero tener una forma de cambiar el puerto HDMI de mi televisor, con la ayuda de mi Raspberry, como si quisiera transmitirle algo y no quiero usar el control remoto para cambiar la fuente a la que está conectada. Hay una forma de hacerlo desde el Pi y con la ayuda de un comando de la aplicación que elijo. En pocas palabras, haga lo siguiente:

sudo apt-get install cec-utils

Ahora sigue al visor de imágenes framebuffer llamado fbi (también hay una versión más avanzada llamada fim)

sudo apt-get install fbi

Soporte de Samba, windows share para acceder y tener una carpeta compartida.

sudo apt-get install samba samba-common-bin

cd / home / pi

sudo mkdir -m 1777 / home / pi / share

Editar archivo de configuración de samba

sudo nano /etc/samba/smb.conf

inserte las siguientes líneas al final (las que comienzan con # son comentarios y pueden ignorarse)

[Cuota]

Comentario = Carpeta compartida de Pi Ruta = / home / pi / compartir Navegable = sí Escriturable = Sí solo invitado = no crear máscara = 0777 máscara de directorio = 0777 Público = sí Invitado ok = sí

Finalmente, guárdelo; usando nano en la terminal:

presione "Ctrl + X" para cerrar el archivo, luego "Y" para confirmar el guardado, luego "Enter" para guardar el archivo con el nombre de archivo correcto.

Ahora configure la contraseña para samba de la misma manera que para el usuario pi (por defecto: frambuesa)

sudo smbpasswd -a pi

reinicia el servicio de samba

sudo /etc/init.d/samba reiniciar

Ahora que tiene lo básico, le sigue la personalización.

Paso 4: personalización

Personalización
Personalización

Haga que la pantalla de bienvenida se muestre al inicio en lugar de una pantalla negra con texto blanco.

Descargue WinSCP e inicie sesión con la misma IP, usuario y contraseña del inicio de sesión SSH / Putty.

Vaya a / home / pi / y cargue la imagen proporcionada en el archivo zip en este paso, después de descomprimir. Entonces sal. La imagen tiene una resolución de 1080p.

escriba el siguiente comando en masilla:

nano ~ /.bashrc

desplácese hasta la última línea con las teclas de flecha inserte las siguientes líneas allí (las que comienzan con # son comentarios y se pueden ignorar)

Fifo para comandos sobre ssh a omxplayer

mkfifo / tmp / cmd # pantalla de inicio para reemplazar la pantalla negra y el texto sudo / usr / bin / fbi -noverbose -a -T 1 /home/pi/splashscreen.jpg

Finalmente, guárdelo; usando nano en la terminal: presione “Ctrl + X” para cerrar el archivo, luego “Y” para confirmar el guardado, luego “Enter” para guardar el archivo con el nombre de archivo correcto.

Ahora hacemos que el usuario 'pi' inicie sesión automáticamente en el arranque, necesitamos esto para mostrar la imagen, se puede hacer de una manera sin inicio de sesión automático, pero es más difícil y puede empeorar rápidamente con un solo error de escritura.

sudo raspi-config

  1. Seleccione la opción de arranque
  2. Seleccione Escritorio / CLI
  3. Seleccione Inicio de sesión automático de consola para CLI

Ahora vamos a reiniciar y habremos terminado con el pi y haremos las cosas buenas para jugar.

sudo reiniciar

La idea de mi proyecto es que la mayoría de las cosas se hacen en el cliente SSH, ya que se puede personalizar y cambiar según sea necesario.

Paso 5: Cómo usarlo:

Cómo usarlo
Cómo usarlo
Cómo usarlo
Cómo usarlo
Cómo usarlo
Cómo usarlo
Cómo usarlo
Cómo usarlo

Mostraré los comandos y lo que hacen y cómo configurar el software adicional desde el dispositivo de transmisión.

Utilizo 3 aplicaciones de Android y 4 aplicaciones de PC para mis propósitos, pero usted implementa lo que necesita de lo que le mostraré o puede tenerlo todo e incluso agregar más.

• YouTube: en Android use Raspcast, en PC use un sitio como https://www.onlinevideoconverter.com/ o

www.youtubnow.com/ o https://youtubemp4.to o incluso mejor https://mpgun.com/youtube-to-mp4.html?yid=hTJAnWWK7YQ (hTJAnWWK7YQ es la identificación de youtube) obtendrá un enlace directo a los medios que se pueden reproducir con el siguiente comando:

omxplayer -o hdmi "https://sv89.onlinevideoconverter.com/download?file=f5a0d3c2e4d3g6h7" / tmp / cmd

Agregar </ tmp / cmd habilitará el control remoto y; eco. > / tmp / cmd comenzará a reproducir la transmisión o esperará un comando del quince. El parámetro -o hdmi de omxplayer dará salida a video HDMI Y el audio va allí, esto es importante para las personas que usan las variantes más grandes de Raspberry Pi Zero W.

Ahora te muestro cómo configurar Raspicast para Android, es gratis y no tiene anuncios.

Instale Raspicast desde Google Play Store y configúrelo como en las imágenes proporcionadas.

play.google.com/store/apps/details?id=at.huber.raspicast

• Sopcast: inicia Sopcast en la PC, elige un canal y cuando veas una imagen da el siguiente comando

La IP 192.168.1.6 es la dirección IP DE SU PC. LAPTOP NO LA DEL PI, en mi ejemplo el Pi tiene 192.168.1.9 y el portátil es 192.168.1.6

omxplayer -o hdmi "192.168.1.6:8902" / tmp / cmd

• AcePlayer: inícielo, elija un canal y … hay una configuración única que debe cambiar para que funcione, vaya a Herramientas -> Preferencias -> Grueso Todo, Salida de flujo -> Cadena de salida de flujo predeterminada, donde ingresa lo siguiente

#duplicate {dst = "http {mux = ts, dst =: 8902 / tv.asf}", dst = display}

Clic en Guardar. Ahora, el comando que le mostrará la transmisión, después de que lo inició en AcePlayer ofc:

omxplayer -o hdmi "https://192.168.1.6:8902/tv.asf" / tmp / cmd

• Transmitir un archivo desde la PC Necesita Putty, Zervit, VLC instalado (no portátil)

Zervit se obtiene de

Primero, debe colocar zervit.exe en la carpeta con los archivos multimedia que desea enviar a su Raspberry PI, luego ejecutarlo, le hará algunas preguntas. "Número de puerto para escuchar (80):" escriba 80 e ingrese "Aceptar lista de directorio [S / N]:" escriba y e ingrese ahora abra un navegador y escriba su dirección IP de LAN https://192.168.1.6 verá todos los archivos multimedia allí, copie el enlace a uno de ellos con un clic derecho -> copiar enlace, luego ssh con masilla y escriba

omxplayer -o hdmi "https://192.168.1.6/Movie.mp4" / tmp / cmd <- o como se llame su archivo multimedia

para archivos con subtítulos, coloque los subtítulos, el mismo nombre que el archivo de video con extensión srt en la carpeta compartida de Windows de la frambuesa

FRAMBUESA / compartir

o

192.168.1.9 / compartir

donde 192.168.1.9 es la ip de tu frambuesa.

en su carpeta de inicio (/ home / pi)

winscp con pi: rasspberry y cargue un script de Python llamado 'omxplayersub.py' con el siguiente contenido:

subproceso de importación

import sys import urllib2 if (len (sys.argv)! = 2): print "Sin nombre de archivo especificado" quit () file = sys.argv [1] subfile = "/ home / pi / share /" + file.split ("/") [- 1] subfile = subfile [: - 3] + "srt" subfile = urllib2.unquote (subfile) subprocess. Popen ('omxplayer -o hdmi -r --font "/ home / pi / Segoe UI, Medium.ttf "--italic-font" / home / pi / Segoe UI, Italic.ttf "--align center '+'" '+ file +' "'+' --subtitles '+'" '+ subarchivo + '"', shell = Verdadero)

ahora cargue esto con la interfaz de usuario de Segoe y las fuentes de la familia FreeSans en su carpeta de inicio (/ home / pi) Cambie los nombres de las fuentes para el tipo de fuente deseado y, si es necesario, agregue --font-size size 55 (predeterminado: 55) después de --align con el tamaño deseado.

y usa el siguiente comando para jugar:

python omxplayersub.py "https://192.168.1.6/Defiance%20S01E02.mp4" </ tmp / cmd <- o como se llame su archivo multimedia

Si no lo ve en la pantalla reproduciéndose, hay un problema de compatibilidad, en algunos archivos h264 el perfil se muestra por h264-omx como -99, sí negativo 99, y no se reproducirá, en este caso y en el caso de un archivo con subtítulos externos, necesitará usar la transmisión VLC, elija archivo / archivos, seleccione HTTP, deje el puerto predeterminado, h.264 / AAC (TS), mantenga la escala en 1, codificación trans - Configuración de subtítulos gruesos, presione el botón de transmisión y deje se ejecuta durante unos segundos.

omxplayer -o hdmi "https://192.168.1.6:8080/" / tmp / cmd <- empezará a reproducirse

Estamos haciendo transcodificación, habrá una pequeña pérdida de calidad en la pantalla y la CPU funcionará más en la PC, pero funciona.

CEC - Controles

Enciende la TV

echo en 0 | cec-cliente -s -d 1

Apaga la TV

echo en espera 0 | cec-cliente -s -d 1

Cambiar fuente HDMI

HDMI1

echo "tx 4F: 82: 10: 00" | cec-cliente -s -d 1

HDMI2

echo "tx 4F: 82: 20: 00" | cec-cliente -s -d 1

HDMI3

echo "tx 4F: 82: 30: 00" | cec-cliente -s -d 1

HDMI4

echo "tx 4F: 82: 40: 00" | cec-cliente -s -d 1

Como ves, el tercer byte en la cadena hexadecimal que hacemos eco es el número del conector HDMI para activarlo.

Paso 6: Lista de comandos para poner en aplicaciones

Lista de comandos para poner en aplicaciones
Lista de comandos para poner en aplicaciones

Ya instaló Raspicast en el paso anterior, ahora debe elegir entre Raspberry SSH (es de pago) o SSH Button (es gratis y me gusta más, pero ya compré Raspberry SSH antes para descubrir este).

Frambuesa SSH

play.google.com/store/apps/details?id=uk.co.knowles_online.raspberryssh

Esta aplicación, o botón SSH, es necesaria si necesita enviar contenido desde una PC y necesita un control remoto desde un dispositivo Android, se puede usar sin ella a través de la masilla desde la PC.

La configuración para ambos es casi la misma.

Botón 1 Btn Text: Reiniciar

Btn Cmd:

sudo reiniciar

Botón 2

Texto Btn: Apagado

Btn Cmd:

sudo poweroff

Botón 3

Texto Btn: HDMI1

Btn Cmd:

echo "tx 4F: 82: 10: 00" | cec-cliente -s -d 1

Botón 4

Texto Btn: HDMI2

Btn Cmd:

echo "tx 4F: 82: 20: 00" | cec-cliente -s -d 1

Botón 5

Texto Btn: HDMI3

Btn Cmd:

echo "tx 4F: 82: 30: 00" | cec-cliente -s -d 1

Botón 6

Texto Btn: Mata omxplayer

Btn Cmd:

sudo killall -s 9 omxplayer.bin

Botón 7

Texto Btn: Sopcast

Btn Cmd:

omxplayer -o hdmi "https://192.168.1.6:8902" / tmp / cmd

Botón 8

Texto Btn: AcePlayer

Btn Cmd:

omxplayer -o hdmi "https://192.168.1.6:8902/tv.asf" / tmp / cmd

Botón 9

Texto Btn: VLC Stream

Btn Cmd:

omxplayer -o hdmi "https://192.168.1.6:8080/" / tmp / cmd

Botón 10

Texto Btn: Reproducir / Pausar

Btn Cmd:

echo -n p> / tmp / cmd

Botón 11

Texto Btn: Volumen +

Btn Cmd:

echo -n +> / tmp / cmd

Botón 12

Texto Btn: Volumen -

Btn Cmd:

echo -n -> / tmp / cmd

Botón 13

Btn Text: Salir de Omxplayer

Btn Cmd:

echo -n q> / tmp / cmd

Botón 14

Texto Btn: Fondo de pantalla aleatorio

Btn Cmd:

wget -O DELME.jpg https://source.unsplash.com/random/1920x1080 &> / dev / null; sudo killall fbi &> / dev / null; sudo fbi -noverbose -a -T 1 DELME.jpg &> / dev / null; sleep 1; rm DELME.jpg

Botón 15

Texto Btn: Fondo de pantalla predeterminado

Btn Cmd:

sudo killall fbi &> / dev / null; sudo fbi -noverbose -a -T 1 splashscreen-j.webp

Botón 16 Btn Text: Fondo de pantalla de presentación de diapositivas

Btn Cmd:

cd / inicio / pi / slideshow /; sudo killall fbi &> / dev / null; sudo fbi -noverbose -a -T 1 -t 5 *-j.webp

-t 5 durante 5 segundos

Botón 17 Texto Btn: SUBTITLE HTTP PLAY (Editar)

Btn Cmd:

python omxplayersub.py "https://192.168.1.6/Some%20video%20with%20subtitle.mp4" </ tmp / cmd

Al editar, cambie "https://192.168.1.6/Some%20video%20with%20subtitle.mp4" por la URL del archivo de una fuente externa o cámbielo a algo como / home / pi / share. El subtítulo debe estar en / home / pi / share, SIEMPRE.

Alternativa de software gratuito a Raspberry SSHhttps://play.google.com/store/apps/details? Id = com.pd7l.sshbutton & hl = en_US

Funciona exactamente igual que Raspberry SSH, no tiene anuncios, menos colores y todos los botones están en una sola fila, no 2, pero es gratis y funciona muy bien.

Ahora, al final, algunas cosas exóticas, transmita lo que graba con su teléfono en tiempo real, hay algunos segundos de retraso, a su televisor.

IP WEBCAMERA PRO (pagado)

play.google.com/store/apps/details?id=com.pas.webcam.pro

Comience a transmitir y use el siguiente comando para transmitirlo a la TV

omxplayer -o hdmi rtsp: //192.168.1.8: 8080 / h264_ulaw.sdp

Servidor de cámara RTSP (gratis)

play.google.com/store/apps/details?id=com.miv.rtspcamera&hl=en&rdid=com.miv.rtspcamera

Hace lo mismo que el pago pero gratis, sin anuncios

omxplayer -o hdmi "rtsp: //192.168.1.8: 5554 / camera"

Cámara activa - rtsp: // (dirección IP del dispositivo): 5554 / cámara Cámara trasera - rtsp: // (dirección IP del dispositivo): 5554 / trasera Cámara frontal - rtsp: // (dirección IP del dispositivo): 5554 / frontal

Parámetros de URL de la cámara:

res Resolución - ancho (número) x alto (número)

fps Cuadro por segundo - fps (número) micrófono Activar / Desactivar micrófono - encendido (cadena) o apagado (cadena)

Ejemplo: rtsp: // (dirección IP del dispositivo): 5554 / back? Res = 640x480 & fps = 10 & mic = on

Paso 7: Más cosas… Interfaz WEB

Más cosas … Interfaz WEB
Más cosas … Interfaz WEB

Instálelo con una sola línea de git

wget https://raw.githubusercontent.com/brainfoolong/omxwebgui-v2/master/install.sh && clear && sh install.sh

Interfaz de usuario predeterminada en el puerto 4321, no necesita servidor web y funciona todo bajo php

Requerimientos:

sudo apt-get install php-cli

sudo apt-get install php-mbstring sudo apt-get install php5-cli sudo apt-get install php5-mbstring

Descargue / clone / descomprima todo el script en una carpeta que desee. Configure el chmod correcto para los scripts con

chmod + x *.sh

Cree un servidor web php escuchando en el puerto 4321, puede cambiar el puerto a lo que desee. Empiece esto con el mismo usuario que necesita para reproducir los videos. No utilice apache u otro servidor para ejecutar el script php, probablemente no funcionará.

php -S 0.0.0.0:4321 -t / home / pi / omxwebgui> / dev / null 2> & 1 &

Abra la página web con https://192.168.1.9:4321 (donde 192.168.1.9 es la IP de raspberry pi)

Para habilitar el inicio automático al reiniciar, simplemente agregue la siguiente línea a su crontab. Haga esto con el mismo usuario que necesita para reproducir los videos. No se requiere sudo. Agregue la siguiente línea a crontab con crontab -e para iniciar el servidor web php simple al reiniciar.

crontab -e

ahora agregue con

@reboot php -S 0.0.0.0:4321 -t omxwebgui> / dev / null 2> & 1 &

Agregue los archivos en la configuración, solo se pueden agregar recursos compartidos localmente alojados o mapeados y transmisiones ofc. Agregue / home / pi / share a la carpeta de subtítulos también y, si es necesario, habilite la corrección para una velocidad de reproducción 2x y sin errores de sonido.

Recomendado: