Não tenho muito tempo recentemente para cuidar do projeto. Se você estiver interessado em ajudar, comente #398
Este é um programa para lançar seu áudio MacOS , ou Linux Audio para seus dispositivos de elenco do Google ou alto -falantes Sonos. Ele também pode lançar arquivos de vídeo.
Está escrito para o Python3 e pode transmitir via node.js , parec ( Linux ) ou ffmpeg . O MKCHROMECAST é capaz de usar formatos de áudio com perdas e sem perdas, desde que ffmpeg ou parec ( Linux ) sejam instalados. Ele também suporta reprodução de grupo com várias salas e resolução de áudio de alta/96kHz. Além disso, um menu de bandeja do sistema está disponível.
Por padrão, os fluxos mkchromecast com node.js (ou parec no linux ) juntamente com o formato de codificação de áudio mp3 a uma taxa de amostragem de 44100Hz e taxa de bits médio de 192k . Esses padrões podem ser alterados usando os sinalizadores --sample-rate e -b . É útil modificar esses parâmetros quando o roteador sem fio não é muito poderoso ou, no caso, você não deseja degradar a qualidade do som. Para mais informações, visite o wiki e as perguntas frequentes.
Opcionalmente, você pode instalar ffmpeg mais informações aqui). Os usuários do Linux também podem configurar o ALSA para capturar áudio. Observe que, às vezes, o atraso entre tocar uma música e audiência pode levar até 8 segundos para certos back -ends.
Para ter uma idéia de usar o mkchromecast do console, verifique este GIF.
O MKCHROMECAST fornece um menu de bandeja do sistema beta . Requer que você instale PyQt5 . Para obter mais informações, verifique os requisitos e instale seções.
É assim que o menu da bandeja do sistema se parece:
Verifique estas imagens:
Se você tem alto -falantes Sonos, pode jogar o que estiver ouvindo em seu computador com o Mkchromecast . Para adicionar suporte Sonos, instale o módulo soco Python:
pip3 install soco
Se você deseja contribuir, pode ajudar relatando problemas ou criando solicitações de tração com seus desenvolvimentos/melhorias. Se o seu caso for a última, visite a seção de desenvolvimento no wiki.
Para usar o mkchromecast, você precisa do software a seguir para transmitir com node.js :
Para mais controle, você precisa ffmpeg como back -end. Nesse caso, instale o seguinte:
Para aqueles que não gostam de pulseaudio, é possível lançar usando ALSA. Nesse caso, os requisitos são:
Existem duas maneiras de instalar este aplicativo:
Existe um aplicativo independente para os usuários do MacOS . Você precisa arrastá -lo para sua pasta /Applications/ .
Faça o download do mais recente DMG aqui. Você também precisa instalar o Blackhole.
Se você estiver usando homebrew, é possível instalar o binário da seguinte forma:
brew install --cask mkchromecast
Se você encontrar algum problema com o aplicativo, relate -o aqui.
O MKCHROMECAST está disponível nos repositórios oficiais do Debian. Para instalá -lo, apenas faça:
apt install mkchromecast
Faça o download do último pacote Deb aqui e instale -o da seguinte forma:
sudo apt -f install ./mkchromecast_$VERSION_all.deb
onde $VERSION = XYZ-Rev , por exemplo : 0.2.6-1 .
Isso deve funcionar no Debian instável e nos testes. Eu também apreciaria testadores do Ubuntu. Se você encontrar algum problema, denuncie -o aqui.
Se você tiver outros problemas relacionados às dependências, discuta -os aqui ou abra um novo problema.
Além disso, existem dois pacotes de dependência para extrair dependências de pulseaudio ou ALSA:
apt-get install mkchromecast-alsa (ALSA users)
ou
apt-get install mkchromecast-pulseaudio (Pulseaudio users)
Para instalar o mkchromecast , clone este repositório:
git clone https://github.com/muammar/mkchromecast.git --depth 1
Ou você pode baixar um dos lançamentos estáveis aqui e descompactar o arquivo.
Mkchromecast está disponível na AUR:
# install with aurman
aurman -S mkchromecast # install with aurutils
aur sync mkchromecast Se você receber o erro cannot import name 'DependencyWarning' no Arch Linux, verifique a edição nº 31.
Para instalar os requisitos do Python, use o arquivo requirements.txt enviado neste repositório:
pip install -r requirements.txt
Nota : Se esta etapa falhar, talvez você precise executar a instalação com sudo como mostrado abaixo. No entanto, antes de instalar o uso deste método, verifique por que um usuário regular não pode instalar esses requisitos.
sudo pip install -r requirements.txt
Os usuários do Linux podem tentar instalar esses requisitos do Python usando os gerentes de pacotes que estão com suas distribuições.
Exemplo de distritos baseados em Debian:
sudo apt-get install python3.6 python3-pip python3-pychromecast python3-flask python3-psutil python3-setuptools python3-mutagen python3-gi vorbis-tools sox lame flac faac opus-tools
Nota : Se python3-pychromecast não estiver disponível em seu repositório, siga as instruções no #9.
Para instalar o Blackhole, você pode verificar https://github.com/existencialudio/blackhole e basta baixar o arquivo DMG mais recente.
Se você tem homebrew, pode usar o Cask Brew da seguinte forma:
brew install --cask blackhole
Por padrão, a taxa de amostragem em Blackhole é definida como 44100Hz . Se você deseja transmitir a taxas de amostragem mais altas, siga as instruções no wiki.
NOTA : Re-amostragem para taxas de amostragem mais altas não é uma boa ideia. Foi de fato um problema nos dispositivos de áudio Chromecast. Veja este tópico. Portanto, se você quiser ir além de 44100Hz , precisará capturar o som a uma taxa de amostragem mais alta.
A maneira mais fácil de instalar ffmpeg é usar um gerenciador de pacotes, por exemplo : Brew, Macports ou Fink. Ou no caso do Linux , por exemplo : Apt, Yum ou Pacman.
Descreverei brevemente o caso de homebrew aqui. Primeiro, você precisará de homebrew instalado em sua máquina:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Depois que o homebrew estiver pronto, você pode instalar ffmpeg . Conforme declarado no site do FFMPEG e por poder usar todos os formatos de codificação de áudio no mkchromecast , é melhor instalar ffmpeg com as seguintes opções ativadas:
brew install ffmpeg --with-fdk-aac --with-tools --with-freetype --with-libass --with-libvorbis --with-libvpx --with-x265 --with-opus
Enquanto uso o Debian, a maneira de instalar ffmpeg é:
apt-get install ffmpeg
Formatos de codificação de áudio disponíveis com os back -ends de parec e ffmpeg
| Formato de codificação de áudio | Descrição | Notas |
|---|---|---|
mp3 | MPEG Audio Cayer III (padrão) | Formato de compressão com perdas (taxa de bits padrão: 192K) |
ogg | Ogg Vorbis | Formato de compressão com perdas (taxa de bits padrão: 192K) |
aac | Codificação de áudio avançada (AAC) | Formato de compressão com perdas (taxa de bits padrão: 192K) |
opus | Opus | Formato de compressão com perdas (taxa de bits padrão: 192K) |
wav | Formato de arquivo de áudio da forma de onda | Formato sem perdas (Sound HQ) |
flac | Codec de áudio sem perdas gratuito | Formato sem perdas (Sound HQ) |
Essas ligações em Python são necessárias se você pretende usar o menu da bandeja do sistema. Às vezes, pip é capaz de instalar PyQt5 e pip install pyqt5 é suficiente.
Se isso não funcionar para você, sugiro que você o instale usando um gerenciador de pacotes.
Exemplo com homebrew:
brew install pyqt5 --with-python3
apt-get install python3-pyqt5
Ou, se você deseja, pode fazer isso por conta própria.
Para atualizar as fontes mkchromecast , basta entrar no diretório clonado e:
git pull
Ou, se você preferir, você pode simplesmente passar o argumento --update para Mkchromecast :
bin/mkchromecast --update
Se você estiver usando o aplicativo MacOS :
Check For Updates .mkchromecast.app em seu diretório /Applications/ . Os usuários do Linux precisam executar uma apt-get upgrade ou baixar o último Deb aqui e dpkg -i mkchromecast_$VERSION_all.deb .
Entre no diretório mkchromecast clonado e execute:
bin/mkchromecast
Isso iniciará o mkchromecast usando node.js (ou parec para usuários do Linux ) e fará a parte de streaming junto com o formato de codificação de áudio mp3 . node.js funciona decentemente, mas o servidor pode tender a falhar em determinadas circunstâncias. Nesse caso, o MKCHROMECAST é capaz de reiniciar o processo de streaming/fundição automaticamente. Portanto, alguns soluços são esperados.
NOTA : A maioria das etapas aqui descritas são as mesmas para os usuários de MacOS e Linux . No entanto, se você iniciar o comando acima no Linux , o processo será menos automatizado. No Linux , você precisa selecionar com pavucontrol a pia chamada Mkchromecast para transmitir, a menos que esteja usando o ALSA. Veja o wiki para obter mais informações. tl; dr?, basta verificar o gif abaixo.
NOTA : O processo de elenco é independente da seleção da pia pulseaudio. Isso significa que o mkchromecast dirá ao dispositivo fundido para ouvir seu computador, mas nenhum som será ouvido até você selecionar a pia. Para usuários da ALSA, isso não se aplica.
ffmpeg com o mkchromecast instalado a partir de fontes Abaixo de um exemplo usando mp3 :
bin/mkchromecast --encoder-backend ffmpeg
Com ffmpeg você pode modificar o codec:
bin/mkchromecast --encoder-backend ffmpeg -c aac
Altere a taxa de bits e a taxa de amostra:
bin/mkchromecast --encoder-backend ffmpeg -c mp3 -b 128 --sample-rate 31000
Verifique a seção Blackhole (somente usuários do MacOS) para obter mais informações sobre as taxas de amostragem.
Você também pode definir o IP do host manualmente, o que é uma opção útil ao ter mais de uma conexão de rede ativa ou quando a detecção IP automaticamente falha:
bin/mkchromecast --host 192.168.1.1
Para lançar usando o formato de codificação de áudio parec e wav :
mkchromecast -c wav
Há também uma opção para alterar a bitrate e, neste caso, com ffmpeg :
mkchromecast --encoder-backend ffmpeg -c ogg -b 128
e outro para alterar a taxa de amostragem:
mkchromecast --encoder-backend ffmpeg -c ogg -b 128 --sample-rate 48000
Para lançá -lo:
bin/mkchromecast -t
ou
mkchromecast -t
O aplicativo da bandeja do sistema pode executar todas as ações dos comandos acima mencionados. Para ter uma ideia, verifique o vídeo do YouTube aqui.
Você pode reproduzir URLs do YouTube (ou outros sites sem cabeça da linha de comando:
bin/mkchromecast -y https://www.youtube.com/watch?v=NVvAJhZVBT
Para usar essa função, você precisa instalar youtube-dl . No MacOS, isso pode ser feito com Homebrew: brew install youtube-dl . Nas distros baseadas em Debian: apt-get install youtube-dl .
NOTA : Pode ser necessário incluir o URL entre as aspas e apenas os URLs sobre https são suportados.
Você pode reproduzir qualquer URLs de origem sem cabeça na linha de comando:
bin/mkchromecast --source-url SOURCE_URL
Esta opção é útil para:
http .Exemplo:
bin/mkchromecast --source-url http://192.99.131.205:8000/pvfm1.ogg -c ogg --control
Como pode ser visto acima, o codec deve ser especificado com o sinalizador -c .
Nota : .m3u ou .pls ainda não são suportados.
Você pode controlar o volume do seu dispositivo de elenco do Google, lançando Mkchromecast com a opção --control :
bin/mkchromecast --encoder-backend ffmpeg -c ogg -b 320 --control
Isso permitirá que você pressione as teclas U e D para volume up e volume down respectivamente.
A bandeja do sistema possui uma janela com um controle deslizante de volume para fazer volume up e volume down .
O MKCHROMECAST permite que você seja lançado usando resolução de áudio de alta 24-bit/96kHz . Esta é a capacidade máxima de áudio do Chromecast . Os codecs suportados são: wav e flac . Apesar de o aac poder usar a taxa de amostragem 96000Hz , a taxa de bits corresponde à de um formato de compressão de dados com perdas. Portanto, as seguintes combinações podem atingir essa capacidade 24-bit/96kHz :
wav + 96000Hz .flac + 96000Hz .Referências:
Agora você pode lançar vídeos para o seu elenco do Google usando Mkchromecast . Esse recurso funciona com back -ends node e ffmpeg e na linha de comando. No futuro, eles podem ser uma interface gráfica para esse processo. Veja este projeto.
bin/mkchromecast --video -i "/path/to/file.mp4"
bin/mkchromecast --video -i "/path/to/file.mp4" --encoder-backend node
Nota : O formato do arquivo pode ser suportado pelo ffmpeg e não exclusivamente MP4.
bin/mkchromecast --video -i "/tmp/Homeland.S06E01.Fair.Game.1080p.AMZN.WEBRip.HEVC.DD5.1.x265.mkv" --subtitles /tmp/Homeland.S06E01.Fair Game.HDTV.x264-BATV.en.HI.srt
bin/mkchromecast --video --resolution 4k -i /path/to/myvideo.something --subtitles /path/to/my.srt
bin/mkchromecast --source-url http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 -c mp4 --volume --video
bin/mkchromecast -y https://www.youtube.com/watch?v=VuMBaAZn3II --video
Para matar o mkchromecast Quando você o executar do console, basta pressionar a tecla Ctrl-C ou Q para sair (quando --control o sinalizador de controle é passado).
Ao iniciar a bandeja do sistema, use o botão Quit na bandeja do sistema.
Para obter mais ajuda:
bin/mkchromecast -h
ou ao instalar o pacote Debian:
mkchromecast -h
node , não é possível usar nem o --subtitle nem as bandeiras --seek .mp3 e aac . Não vou dar apoio wma . Aparentemente, existe uma maneira de jogar wav e ogg que tentarei implementar mais tarde. parec e o Coder lame , o atraso entre o áudio reproduzido e ouvido pode levar até 8 segundos. Eu sugiro que você use algo diferente do MP3.Você também pode verificar as perguntas frequentes para obter mais informações.