Tabla de contenido:
- Paso 1: lo que necesita y lo que obtiene
- Paso 2: obtener el software y las herramientas para instalar en la tarjeta SD
- Paso 3: Actualizar y configurar todo
- Paso 4: personalización
- Paso 5: Cómo usarlo:
- Paso 6: Lista de comandos para poner en aplicaciones
- Paso 7: Más cosas… Interfaz WEB
Video: Hacer un dispositivo Chromecast como Raspberry Pi: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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
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
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
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
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
- Seleccione la opción de arranque
- Seleccione Escritorio / CLI
- 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:
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
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
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:
Cómo hacer un dispositivo de distanciamiento social Arduino con PIR: 4 pasos
Cómo hacer un dispositivo de distanciamiento social Arduino con PIR: 1
¡Cómo hacer tu propio dispositivo de visión nocturna !: 5 pasos (con imágenes)
¡Cómo hacer su propio dispositivo de visión nocturna !: En este proyecto le mostraré cómo crear un dispositivo de visión nocturna. Consiste principalmente en una cámara de seguridad, una pantalla pequeña y una PCB personalizada que cuenta con LED IR y un controlador LED. Después de alimentar el dispositivo con un powerbank USB Type-C PD, puede
Cómo hacer un dispositivo de acoplamiento de bolsillo: 4 pasos
Cómo hacer un dispositivo de acoplamiento de bolsillo: Hola a todos. Para este Instructable, voy a revelar un trabajo en progreso en el que he estado jugando durante la mayor parte de un año. Lo llamo The Pocket Doc, también conocido como Apple Fold. Es una carcasa impresa en 3D que alberga un teléfono y un banco de energía y
Cómo hacer un dispositivo de IoT para controlar dispositivos y monitorear el clima usando Esp8266: 5 pasos
Cómo hacer un dispositivo de IoT para controlar dispositivos y monitorear el clima usando Esp8266: Internet de las cosas (IoT) es la interconexión de dispositivos físicos (también conocidos como " dispositivos conectados " y " dispositivos inteligentes "), edificios, y otros elementos - integrados con electrónica, software, sensores, actuadores y
Cómo hacer un dispositivo de escucha: 9 pasos
Cómo hacer un dispositivo de escucha: te mostraré cómo hacer un dispositivo de escucha a partir de un walkie talkie