Índice:

Faça um Chromecast como o dispositivo Raspberry Pi: 7 etapas
Faça um Chromecast como o dispositivo Raspberry Pi: 7 etapas

Vídeo: Faça um Chromecast como o dispositivo Raspberry Pi: 7 etapas

Vídeo: Faça um Chromecast como o dispositivo Raspberry Pi: 7 etapas
Vídeo: This $20 Android TV Streaming Box is Great for Pirates - Android TV Device Roundup 2024, Julho
Anonim
Faça um Chromecast como o dispositivo Raspberry Pi
Faça um Chromecast como o dispositivo Raspberry Pi
Faça um Chromecast como o dispositivo Raspberry Pi
Faça um Chromecast como o dispositivo Raspberry Pi
Faça um Chromecast como o dispositivo Raspberry Pi
Faça um Chromecast como o dispositivo Raspberry Pi
Faça um Chromecast como o dispositivo Raspberry Pi
Faça um Chromecast como o dispositivo Raspberry Pi

Já tenho um Chromecast v2 (o redondo, o stick USB é v1 e v3 parece v2, mas com G em i e tem um power brick com porta Ethernet) e adoro, é muito divertido de usar e fácil de configurar, MAS …

Sim, há um MAS, quando estou em um lugar onde não tenho acesso à Internet e não posso usar meu plano de dados, NÃO POSSO UTILIZÁ-LO para transmitir mídia local do meu telefone ou tablet, mesmo quando não tenho não precisa de internet de jeito nenhum, google na “grande sabedoria” deles resolveu não deixar nem dar boot sem internet, isso é ruim se você acabar precisando fazer stream

Eu tenho um mini roteador GL-MT300A, é muito pequeno e pode ser alimentado por um telefone, bateria externa ou carregador de telefone, eu o uso para ter meu Chromecast emparelhado com ele e quando eu preciso de internet, eu apenas conecto o roteador à rede com fio ou se eles tiverem apenas WiFi, ele suporta conectar como cliente e atuar como roteador ao mesmo tempo também, agora o problema ainda persiste, sem internet = sem chromecast de mídia local para você. Aí vem o Raspberry Pi Zero W (W vem de Wireless, tem uma placa build it, * yaay *, Bluetooth também, mas eu não preciso disso: P)

Etapa 1: O que você precisa e o que você obtém

O que você precisa e o que você obtém
O que você precisa e o que você obtém
O que você precisa e o que você obtém
O que você precisa e o que você obtém
O que você precisa e o que você obtém
O que você precisa e o que você obtém

Você precisa:

  • Raspberry Pi Zero W (o meu está em uma caixa de acrílico)
  • Cabo HDMI (um com tampas de plástico é bom ter)
  • Fonte de alimentação (carregador de telefone no meu caso)
  • Adaptador Mini HDMI (macho) para HDMI completo (fêmea) (vem com PI)
  • Cartão SD de 8 Gb ou mais (eu uso um 16 Gb da Medion)
  • Leitor de cartão SD (ganhei o meu de presente com um banco de energia da Hama)
  • Conexão com a Internet e PC para download do "Raspbian Stretch Lite"
  • Etcher Portable (gravador de imagem de cartão SD) -> obter Etcher para Windows x86 (32 bits) (portátil) também funcionará em x64
  • Baixe o Putty do link fornecido ou google para ele

Você vai ter:

Um alvo de transmissão para arquivos de vídeo de serviços online como YouTube e mídia local (Vídeo, Áudio e Imagens) para Android (Raspicast), Windows e qualquer sistema operacional que suporte um aplicativo cliente SSH

Ele não requer Internet se a mídia que você está enviando estiver armazenada em seu dispositivo ou em algum lugar da rede local

Você pode obter um controle remoto do destino, como reprodução, escolher a fonte, reproduzir / pausar, volume, sair. (Raspberry SSH ou SSH Button, Putty)

Você obtém um tempo de inicialização do dispositivo muito rápido, para um Raspberry Pi Zero, em torno de 10 segundos

Você obtém um papel de parede padrão e uma maneira de exibir papéis de parede aleatórios, pressionando um botão que não está ocupando espaço no seu dispositivo e permanece lá até a reinicialização. (pode ser alterado para ser persistente, vou mostrar mais tarde como)

Aceita vários tipos de streams (como HTTP, HTTPS, RTSP) e com a ajuda de um computador, laptop no meu caso, Sopcast, Acestream bem como mídia local com legendas externas (como srt, sub)

Você pode até fornecer arquivos via HTTP armazenados em seu computador, com a ajuda de um servidor da web portátil de arquivo único para o reprodutor

Há mais para descobrir, adicionar ou remover, dependendo de suas necessidades

Etapa 2: obtendo o software e as ferramentas para colocar no cartão SD

Obtendo o software e as ferramentas para colocar no cartão SD
Obtendo o software e as ferramentas para colocar no cartão SD
Obtendo o software e as ferramentas para colocar no cartão SD
Obtendo o software e as ferramentas para colocar no cartão SD
Obtendo o software e as ferramentas para colocar no cartão SD
Obtendo o software e as ferramentas para colocar no cartão SD

Transferências:

Agora vá para https://www.raspberrypi.org/downloads/raspbian/ e faça download do "Raspbian Stretch Lite"

Acesse https://www.balena.io/etcher/ e obtenha o Etcher para Windows x86 (32 bits) (portátil) (também existem versões para Linux e Mac)

Baixe o putty em

Agora que você tem tudo isso, vamos iniciar o Etcher e inserir o cartão no leitor de cartão e o leitor no computador: P

No Etcher, clique em selecionar imagem e escolha o arquivo zip baixado (para mim, no momento em que escrevo, é "2018-11-13-raspbian-stretch-lite.zip", selecione o leitor de cartão na lista exibida e, pelo menos, clique flash, ele vai pedir permissão ao User Account Control (UAC), permitir, ele precisa acessar fisicamente o sdcard em modo exclusivo para escrever a imagem. Quando terminar desconecte-o, ele já foi ejetado pelo Etcher, e coloque-o de volta, haverá uma partição de boot de ~ 50Mb e você será solicitado a formatar uma "partição não formatada" NÃO A FORMATAR, o Windows não consegue ler partições Linux e há uma partição ext4.

Você precisa fazer 2 arquivos na partição de inicialização.

um novo arquivo sem extensão chamado ssh

outro chamado wpa_supplicant.conf

O conteúdo do "wpa_supplicant.conf" é o seguinte

país = GB

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

Agora conecte-o ao Raspberry Pi e conecte o dispositivo de saída HDMI (também conhecido como TV, projetor, etc.) e à alimentação.

Na última linha antes do login será mostrado um IP. (Como regra geral, é bom fazer essa alocação de endereço estática para o seu roteador, consulte a imagem de um roteador Linksys.

Etapa 3: Atualizar e configurar tudo

Atualizando e configurando tudo
Atualizando e configurando tudo

Atualize seu sistema:

sudo apt-get update

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

Depois que tudo estiver feito, ele irá reiniciar e você terá uma janela de putty que está inativa, feche-a e comece novamente com os mesmos dados da etapa anterior.

Agora vamos instalar o omxplayer, não há necessidade de compilá-lo do código-fonte, faz parte dos repositórios do Raspbian.

sudo apt-get install omxplayer fonts-freefont-ttf

Quero encontrar uma maneira de trocar a porta HDMI da minha TV, com a ajuda do meu Raspberry, como se eu quisesse transmitir algo para ela e não quisesse usar o controle remoto para mudar a fonte para a qual ele está conectado. Existe uma maneira de fazer isso a partir do Pi e com a ajuda de um comando do meu aplicativo de escolha. Resumindo, faça o seguinte:

sudo apt-get install cec-utils

Agora ele segue o visualizador de imagens do framebuffer chamado fbi (há uma versão mais avançada chamada fim também)

sudo apt-get install fbi

Suporte a Samba, compartilhamento de janelas para acessar e ter uma pasta compartilhada.

sudo apt-get install samba samba-common-bin

cd / home / pi

sudo mkdir -m 1777 / home / pi / share

Editar arquivo de configuração do samba

sudo nano /etc/samba/smb.conf

insira as seguintes linhas no final (as que começam com # são comentários e podem ser ignoradas)

[compartilhado]

Comment = Pi pasta compartilhada Path = / home / pi / share Browseable = yes Writeable = Sim apenas convidado = não criar máscara = 0777 máscara de diretório = 0777 Público = sim Visitante ok = sim

Finalmente, salve; usando nano no terminal:

pressione “Ctrl + X” para fechar o arquivo, depois “Y” para confirmar o salvamento e “Enter” para salvar o arquivo com o nome de arquivo correto.

Agora defina a senha para o samba da mesma forma que para o usuário pi (padrão: raspberry)

sudo smbpasswd -a pi

reinicie o serviço samba

sudo /etc/init.d/samba restart

Agora que você tem o básico, a personalização segue.

Etapa 4: Personalização

Costumização
Costumização

faça com que a tela inicial seja exibida na inicialização, em vez de uma tela preta com texto branco.

Baixe o WinSCP e faça o login usando o mesmo IP, usuário e senha do login do SSH / Putty.

Vá para / home / pi / e carregue a imagem fornecida no arquivo zip nesta etapa, após descompactar. Então saia. A imagem tem resolução de 1080p.

digite o seguinte comando na massa:

nano ~ /.bashrc

role para a última linha com as teclas de seta; insira as seguintes linhas lá (as que começam com # são comentários e podem ser ignoradas)

# fifo para comandos por ssh para omxplayer

mkfifo / tmp / cmd # tela inicial para substituir a tela preta e o texto sudo / usr / bin / fbi -noverbose -a -T 1 /home/pi/splashscreen.jpg

Finalmente, salve; usando nano no terminal: pressione “Ctrl + X” para fechar o arquivo, depois “Y” para confirmar o salvamento e “Enter” para salvar o arquivo com o nome de arquivo correto.

Agora fazemos o login automático do usuário 'pi' na inicialização, precisamos disso para exibir a imagem, pode ser feito de uma forma sem login automático, mas é mais difícil e pode ficar ruim rapidamente com um único erro de digitação.

sudo raspi-config

  1. Selecione a opção de inicialização
  2. Selecione Desktop / CLI
  3. Selecione o login automático do console para CLI

Agora vamos reiniciar e terminar com o pi e vamos fazer as guloseimas para jogar.

sudo reboot

A ideia do meu projeto é que a maior parte das coisas seja feita no cliente SSH, pois pode ser customizado e alterado conforme necessário.

Etapa 5: como usar:

Como usá-lo
Como usá-lo
Como usá-lo
Como usá-lo
Como usá-lo
Como usá-lo
Como usá-lo
Como usá-lo

Vou mostrar os comandos e o que eles fazem e como configurar o software adicional do dispositivo de streaming.

Eu uso 3 aplicativos para Android e 4 aplicativos para PC para meus propósitos, mas você implementa o que precisa do que vou mostrar que você pode ter tudo e até adicionar mais.

• YouTube: no Android use Raspcast, no PC use um site como https://www.onlinevideoconverter.com/ ou

www.youtubnow.com/ ou https://youtubemp4.to ou ainda melhor https://mpgun.com/youtube-to-mp4.html?yid=hTJAnWWK7YQ (hTJAnWWK7YQ é o id do youtube), você receberá um link direto para a mídia que pode ser reproduzido pelo seguinte comando:

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

Adicionar </ tmp / cmd habilitará o controle remoto e; eco. > / tmp / cmd vai começar a tocar o stream ou então vai esperar por um comando do fifo. O parâmetro -o hdmi do omxplayer terá saída para vídeo HDMI E o áudio vai para lá, isso é importante para pessoas que estão usando as variantes maiores do Raspberry Pi Zero W.

Agora vou mostrar como configurar o Raspicast para Android, é gratuito e não tem anúncios.

Instale o Raspicast da google play store e configure-o como nas imagens fornecidas.

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

• Sopcast: inicie o Sopcast no PC, escolha um canal e quando vir uma imagem dê o seguinte comando

O IP 192.168.1.6 é o endereço IP DO SEU PC. LAPTOP NÃO O DO PI, no meu exemplo o Pi tem 192.168.1.9 e o laptop é 192.168.1.6

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

• AcePlayer: inicie, escolha um canal e … há uma configuração única que você precisa alterar para que funcione, vá para Ferramentas -> Preferências -> Tudo grosso, saída de fluxo -> Cadeia de saída de fluxo padrão, onde você insere o seguinte

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

Clique em Salvar. Agora o comando que irá mostrar o stream, após você iniciá-lo no AcePlayer ofc:

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

• Transmissão de um arquivo do PC que você precisa do Putty, Zervit, VLC instalado (não portátil)

Zervit que você obtém em

Primeiro você precisa colocar o zervit.exe na pasta com os arquivos de mídia que você quer enviar para o Raspberry PI, então execute-o, ele fará algumas perguntas. "Número da porta para escutar (80):" digite 80 e digite "Aceitar listagem de diretório [S / N]:" digite y e entre agora abra um navegador e digite seu endereço IP LAN https://192.168.1.6 que você verá todos os arquivos de mídia lá, copie o link para um deles com o botão direito -> copiar link, então ssh com putty e digite

omxplayer -o hdmi "https://192.168.1.6/Movie.mp4" / tmp / cmd <- ou o nome do seu arquivo de mídia

para arquivos com legendas coloque as legendas, mesmo nome do arquivo de vídeo com extensão srt na pasta compartilhada do windows do framboesa

RASPBERRYPI / compartilhar

ou

192.168.1.9 / compartilhamento

onde 192.168.1.9 é o ip da sua framboesa.

em sua pasta de início (/ home / pi)

winscp com pi: rasspberry e carregue um script python chamado 'omxplayersub.py' com o seguinte conteúdo:

subprocesso de importação

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

agora carregue isso com as fontes da família Segoe UI e FreeSans para sua pasta de início (/ home / pi) Mude os nomes das fontes para o tipo de fonte desejado e, se necessário, adicione --font-size size 55 (padrão: 55) após --align com o tamanho desejado.

e use o seguinte comando para jogar:

python omxplayersub.py "https://192.168.1.6/Defiance%20S01E02.mp4" </ tmp / cmd <- ou qualquer que seja o nome do seu arquivo de mídia

Se você não vê-lo na reprodução da tela, há um problema de compatibilidade, em alguns arquivos h264 o perfil é exibido por h264-omx como -99, sim, negativo 99, e ele não vai jogar, neste caso e no caso de um arquivo com legendas externas, você precisará usar o fluxo VLC, escolha o arquivo / arquivos, selecione HTTP, deixe a porta padrão, h.264 / AAC (TS), mantenha a escala em 1, Transcodificação - Configurações de legendas grossas, pressione o botão de fluxo e deixe ele correu por alguns segundos.

omxplayer -o hdmi "https://192.168.1.6:8080/" / tmp / cmd <- vai começar a tocar

Estamos fazendo transcodificação, vai haver uma pequena perda de qualidade na tela e a CPU vai funcionar mais no PC, mas funciona.

CEC - Controles

Ligar a TV

echo em 0 | cec-client -s -d 1

Desligue a TV

eco em espera 0 | cec-client -s -d 1

Mudar fonte HDMI

HDMI1

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

HDMI2

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

HDMI3

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

HDMI4

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

Como você pode ver, o terceiro byte na string hexadecimal que ecoamos é o número do conector HDMI a ser definido como ativo.

Etapa 6: Lista de comandos para colocar em aplicativos

Lista de comandos para colocar em aplicativos
Lista de comandos para colocar em aplicativos

Você já instalou o Raspicast na etapa anterior, agora você tem que escolher entre o Raspberry SSH (é pago) ou o botão SSH (é gratuito e eu gosto mais, mas já comprei o Raspberry SSH antes para descobrir este).

Framboesa SSH

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

Este aplicativo, ou botão SSH, é necessário se você precisar transmitir coisas do PC e precisar de um controle remoto de um dispositivo Android, ele pode ser usado sem o putty do PC.

A configuração de ambos é quase a mesma.

Texto do botão 1 Btn: Reinicializar

Btn Cmd:

sudo reboot

Botão 2

Texto Btn: Poweroff

Btn Cmd:

sudo poweroff

Botão 3

Texto Btn: HDMI1

Btn Cmd:

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

Botão 4

Texto Btn: HDMI2

Btn Cmd:

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

Botão 5

Texto Btn: HDMI3

Btn Cmd:

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

Botão 6

Texto Btn: Mate omxplayer

Btn Cmd:

sudo killall -s 9 omxplayer.bin

Botão 7

Texto Btn: Sopcast

Btn Cmd:

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

Botão 8

Texto Btn: AcePlayer

Btn Cmd:

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

Botão 9

Texto Btn: VLC Stream

Btn Cmd:

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

Botão 10

Texto Btn: Reproduzir / Pausar

Btn Cmd:

echo -n p> / tmp / cmd

Botão 11

Texto Btn: Volume +

Btn Cmd:

echo -n +> / tmp / cmd

Botão 12

Texto Btn: Volume -

Btn Cmd:

echo -n -> / tmp / cmd

Botão 13

Texto Btn: Saia do Omxplayer

Btn Cmd:

echo -n q> / tmp / cmd

Botão 14

Texto Btn: papel de parede aleatório

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ão 15

Texto Btn: papel de parede padrão

Btn Cmd:

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

Texto do botão 16 Btn: papel de parede da apresentação de slides

Btn Cmd:

cd / home / pi / apresentação de slides /; sudo killall fbi &> / dev / null; sudo fbi -noverbose -a -T 1 -t 5 *-j.webp

-t 5 por 5 segundos

Texto do botão 17 Btn: SUBTITLE HTTP PLAY (editar)

Btn Cmd:

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

Ao editar, altere o "https://192.168.1.6/Some%20video%20with%20subtitle.mp4" com o url do arquivo de uma fonte externa ou altere-o para algo como / home / pi / share. A legenda deve estar em / home / pi / share, SEMPRE.

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

Funciona exatamente da mesma forma que o Raspberry SSH, não tem anúncios, tem menos cores e todos os botões estão em uma única linha, não 2, mas é gratuito e funciona muito bem.

Agora no final algumas coisas exóticas, transmita o que você grava com seu telefone em tempo real, com alguns segundos de atraso, para sua TV.

IP WEBCAMERA PRO (pago)

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

Inicie o streaming e use o seguinte comando para transmiti-lo para a TV

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

Servidor de câmera RTSP (gratuito)

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

Faz a mesma coisa que o pago, mas de graça, sem anúncios

omxplayer -o hdmi "rtsp: //192.168.1.8: 5554 / câmera"

Câmera ativa - rtsp: // (endereço IP do dispositivo): 5554 / câmera Câmera traseira - rtsp: // (endereço IP do dispositivo): 5554 / traseira Câmera frontal - rtsp: // (endereço IP do dispositivo): 5554 / frente

Parâmetros de URL da câmera:

Resolução res - largura (número) x altura (número)

fps Quadro por segundo - fps (número) Ativar / desativar microfone - ligado (string) ou desligado (string)

Exemplo: rtsp: // (endereço IP do dispositivo): 5554 / back? Res = 640x480 & fps = 10 & mic = on

Etapa 7: Mais algumas coisas … Interface WEB

Mais algumas coisas … Interface WEB
Mais algumas coisas … Interface WEB

Instale-o com uma única linha do git

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

Interface de usuário padrão na porta 4321, não precisa de servidor web e está funcionando sob php

Requisitos:

sudo apt-get install php-cli

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

Baixe / Clone / Descompacte todo o script para uma pasta de sua preferência. Defina o chmod correto para os scripts com

chmod + x *.sh

Crie um servidor web php ouvindo na porta 4321, você pode alterar a porta para o que quiser. Comece com o mesmo usuário que você precisa para reproduzir os vídeos. Por favor, não use o apache ou outro servidor para executar o script php, provavelmente não funcionará.

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

Abra a página da web com https://192.168.1.9:4321 (onde 192.168.1.9 é o IP do raspberry pi)

Para habilitar o autostart na reinicialização, basta adicionar a seguinte linha ao seu crontab. Faça isso com o mesmo usuário de que você precisa para reproduzir os vídeos. Não é necessário sudo. Adicione a seguinte linha ao crontab com crontab -e para iniciar o servidor da web php simples na reinicialização.

crontab -e

agora adicione com

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

Adicione os arquivos nas configurações, apenas compartilhamentos locais hospedados ou maped e streams ofc podem ser adicionados.add / home / pi / share à pasta de legendas também e, se necessário, habilite a correção para velocidade de reprodução 2x e nenhum bug de som.

Recomendado: