No tengo demasiado tiempo recientemente para cuidar el proyecto. Si le interesa ayudar, comente #398
Este es un programa para lanzar su audio MacOS , o audio de Linux a sus dispositivos de reparto de Google o altavoces Sonos. También puede proyectar archivos de video.
Está escrito para Python3, y puede transmitirse a través de node.js , parec ( Linux ) o ffmpeg . MkChromecast es capaz de usar formatos de audio con pérdida y sin pérdidas siempre que se instalen ffmpeg o parec ( Linux ). También es compatible con la reproducción de grupos de varias habitaciones y la resolución de audio de alta alta y 96 kHz. Además, hay un menú de bandeja del sistema disponible.
Por defecto, mkChromecast se transmite con node.js (o parec en Linux ) junto con el formato de codificación de audio mp3 a una velocidad de muestra de 44100Hz y una tasa de bits promedio de 192k . Estos valores predeterminados se pueden cambiar utilizando los indicadores --sample-rate y -b . Es útil modificar estos parámetros cuando su enrutador inalámbrico no es muy poderoso, o en el caso de que no desee degradar la calidad del sonido. Para obtener más información, visite el wiki y las preguntas frecuentes.
Opcionalmente puede instalar ffmpeg más información aquí). Los usuarios de Linux también pueden configurar ALSA para capturar audio. Tenga en cuenta que a veces el retraso entre tocar una canción y la audición puede ser de hasta 8 segundos para ciertos backends.
Para tener la idea de usar mkChromecast desde la consola, verifique este GIF.
MkChromecast proporciona un menú de bandeja del sistema beta . Requiere que instale PyQt5 . Para obtener más información, consulte los requisitos e instalar secciones.
Así es como se ve el menú de la bandeja del sistema:
Verifique estas imágenes:
Si tienes altavoces Sonos, puedes jugar lo que estés escuchando en tu computadora con MkChromecast . Para agregar soporte de Sonos, instale el módulo soco Python:
pip3 install soco
Si desea contribuir, puede ayudar informando problemas o creando solicitudes de extracción con sus desarrollos/mejoras. Si su caso es el último, visite la sección de desarrollo en el wiki.
Para usar mkChromecast , necesita el siguiente software para transmitir con node.js :
Para obtener más control, necesita ffmpeg como backend. En ese caso, instale lo siguiente:
Para aquellos a quienes no les gusta Pulseaudio, es posible lanzar con Alsa. En ese caso, los requisitos son:
Hay dos formas de instalar esta aplicación:
Hay una aplicación independiente para usuarios de MacOS . Debe arrastrarlo a su carpeta /Applications/ .
Descargue el último DMG aquí. También necesita instalar Blackhole.
Si está utilizando Homebrew, es posible instalar el binario de la siguiente manera:
brew install --cask mkchromecast
Si encuentra algún problema con la solicitud, infórmelo aquí.
MkChromecast está disponible en los repositorios oficiales de Debian. Para instalarlo, solo haga:
apt install mkchromecast
Descargue el último paquete DEB aquí e instálelo de la siguiente manera:
sudo apt -f install ./mkchromecast_$VERSION_all.deb
donde $VERSION = XYZ-Rev , por ejemplo : 0.2.6-1 .
Esto debería funcionar en Debian inestable y pruebas. También agradecería a los probadores de Ubuntu. Si encuentra algún problema, infórmelo aquí.
Si experimenta otros problemas relacionados con las dependencias, discúdalos aquí o abra un nuevo problema.
Además, hay dos paquetes de dependencia para tirar de las dependencias de PulseAudio o ALSA:
apt-get install mkchromecast-alsa (ALSA users)
o
apt-get install mkchromecast-pulseaudio (Pulseaudio users)
Para instalar mkChromecast , clone este repositorio:
git clone https://github.com/muammar/mkchromecast.git --depth 1
O puede descargar una de las versiones estables aquí y descomponer el archivo.
MkChromecast está disponible en el AUR:
# install with aurman
aurman -S mkchromecast # install with aurutils
aur sync mkchromecast Si recibe el error cannot import name 'DependencyWarning' en Arch Linux, verifique el problema #31.
Para instalar los requisitos de Python, use el archivo requirements.txt enviado en este repositorio:
pip install -r requirements.txt
Nota : Si este paso falla, tal vez deba ejecutar la instalación con sudo como se muestra a continuación. Sin embargo, antes de instalar utilizando este método, verifique por qué un usuario regular no puede instalar estos requisitos.
sudo pip install -r requirements.txt
Los usuarios de Linux pueden intentar instalar estos requisitos de Python utilizando los administradores de paquetes que vienen con sus distribuciones.
Ejemplo de distribuciones basadas en 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 : Si python3-pychromecast no está disponible en su repositorio, siga las instrucciones en el #9.
Para instalar Blackhole, puede consultar https://github.com/existentialaudio/blackhole y simplemente descargar el último archivo DMG.
Si tiene HomeBrew, puede usar Brew Cask de la siguiente manera:
brew install --cask blackhole
Por defecto, la frecuencia de muestreo en Blackhole se establece en 44100Hz . Si desea transmitir a velocidades de muestra más altas, siga las instrucciones en el wiki.
NOTA : El reaplacamiento a tasas de muestreo más altas no es una buena idea. De hecho, fue un problema en los dispositivos de audio de Chromecast. Ver este hilo. Por lo tanto, si desea ir más allá de 44100Hz , debe capturar el sonido a una frecuencia de muestreo más alta.
La forma más fácil de instalar ffmpeg es usar un Administrador de paquetes, por ejemplo : Brew, MacPorts o Fink. O en el caso de Linux , por ejemplo : Apt, Yum o Pacman.
Describiré brevemente el caso de Homebrew aquí. Primero, necesitará instalado Homebrew en su máquina:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Una vez que Homebrew esté listo, puede instalar ffmpeg . Como se indica en el sitio web de FFMPEG, y para poder utilizar todos los formatos de codificación de audio en MkChromecast , es mejor instalar ffmpeg con las siguientes opciones habilitadas:
brew install ffmpeg --with-fdk-aac --with-tools --with-freetype --with-libass --with-libvorbis --with-libvpx --with-x265 --with-opus
Mientras uso Debian, la forma de instalar ffmpeg es:
apt-get install ffmpeg
Formatos de codificación de audio disponibles con Backends parec y ffmpeg
| Formato de codificación de audio | Descripción | Notas |
|---|---|---|
mp3 | MPEG Audio Layer III (predeterminado) | Formato de compresión con pérdida (tasa de bits predeterminada: 192k) |
ogg | Vorbis ogg | Formato de compresión con pérdida (tasa de bits predeterminada: 192k) |
aac | Codificación de audio avanzada (AAC) | Formato de compresión con pérdida (tasa de bits predeterminada: 192k) |
opus | Opus | Formato de compresión con pérdida (tasa de bits predeterminada: 192k) |
wav | Formato de archivo de audio de forma de onda | Formato sin pérdidas (sonido HQ) |
flac | Códec de audio sin pérdidas sin pérdidas | Formato sin pérdidas (sonido HQ) |
Se necesitan estos enlaces de Python si tiene la intención de usar el menú de la bandeja del sistema. A veces, pip puede instalar PyQt5 y pip install pyqt5 es suficiente.
Si esto no funciona para usted, le sugiero que lo instale usando un Administrador de paquetes.
Ejemplo con Homebrew:
brew install pyqt5 --with-python3
apt-get install python3-pyqt5
O si lo desea, puede hacerlo usted mismo de las fuentes.
Para actualizar las fuentes de MkChromecast , simplemente ingrese al directorio clonado y:
git pull
O si lo prefiere, puede pasar el argumento --update a mkChromecast :
bin/mkchromecast --update
Si está utilizando la aplicación MacOS :
Check For Updates .mkchromecast.app en su /Applications/ directorio. Los usuarios de Linux deben realizar una apt-get upgrade o descargar el último DEB aquí, y dpkg -i mkchromecast_$VERSION_all.deb .
Entra en el directorio mkchromecast clonado y ejecute:
bin/mkchromecast
Esto se iniciará MkChromecast usando node.js (o parec para usuarios de Linux ), y hará la parte de transmisión junto con el formato de codificación de audio mp3 . node.js funciona decentemente, pero el servidor puede tender a fallar bajo ciertas circunstancias. En tal caso, MkChromecast puede reiniciar el proceso de transmisión/fundición automáticamente. Entonces, se esperan algunos problemas.
Nota : La mayoría de los pasos descritos en este documento son los mismos para los usuarios de MacOS y Linux . Sin embargo, si inicia el comando anterior en Linux , el proceso está menos automatizado. En Linux , debe seleccionar con pavucontrol el fregadero llamado Mkchromecast to Stream a menos que esté utilizando ALSA. Consulte el wiki para obtener más información. tl; dr?, solo verifique el gif a continuación.
Nota : El proceso de reparto es independiente de la selección del fregadero Pulseaudio. Esto significa que MkChromecast le dirá al dispositivo de reparto que escuche su computadora, pero no se escuchará ningún sonido hasta que seleccione el fregadero. Para los usuarios de ALSA, esto no se aplica.
ffmpeg con mkChromecast instalado desde fuentes Debajo de un ejemplo usando mp3 :
bin/mkchromecast --encoder-backend ffmpeg
Con ffmpeg puede modificar el códec:
bin/mkchromecast --encoder-backend ffmpeg -c aac
Cambiar la tasa de bits y la frecuencia de muestreo:
bin/mkchromecast --encoder-backend ffmpeg -c mp3 -b 128 --sample-rate 31000
Verifique la sección Blackhole (solo usuarios de MacOS) para obtener más información sobre la frecuencia de muestreo.
También puede configurar la IP del host manualmente, que es una opción útil cuando tiene más de una conexión de red activa o cuando la detección de IP automáticamente falla:
bin/mkchromecast --host 192.168.1.1
Para lanzar usando el formato de codificación de audio parec y wav :
mkchromecast -c wav
También hay una opción para cambiar la bitrate , y en este caso con ffmpeg :
mkchromecast --encoder-backend ffmpeg -c ogg -b 128
y otro para cambiar la tasa de muestreo:
mkchromecast --encoder-backend ffmpeg -c ogg -b 128 --sample-rate 48000
Para lanzarlo:
bin/mkchromecast -t
o
mkchromecast -t
La aplicación de la bandeja del sistema puede realizar todas las acciones de los comandos mencionados anteriormente. Para tener una idea, consulte el video de YouTube aquí.
Puedes jugar URL de YouTube (u otros sitios sin cabeza desde la línea de comando:
bin/mkchromecast -y https://www.youtube.com/watch?v=NVvAJhZVBT
Para usar esta función, debe instalar youtube-dl . En macOS, esto se puede hacer con HomeBrew: brew install youtube-dl . En Distros basadas en Debian: apt-get install youtube-dl .
Nota : Es posible que deba encerrar la URL entre las comillas, y solo se admiten URL sobre https .
Puedes jugar cualquier URL de origen desde la línea de comando:
bin/mkchromecast --source-url SOURCE_URL
Esta opción es útil para:
http .Ejemplo:
bin/mkchromecast --source-url http://192.99.131.205:8000/pvfm1.ogg -c ogg --control
Como se puede ver anteriormente, el códec debe especificarse con el indicador -c .
Nota : .m3u o .pls aún no se admiten.
Puede controlar el volumen de su dispositivo de reparto de Google iniciando mkChromecast con la opción --control :
bin/mkchromecast --encoder-backend ffmpeg -c ogg -b 320 --control
Esto le permitirá presionar las teclas U y D para volume up y volume down respectivamente.
La bandeja del sistema tiene una ventana con un control deslizante de volumen para hacer volume up y volume down .
MkChromecast le permite lanzar usando una resolución de audio alta 24-bit/96kHz . Esta es la capacidad máxima de audio Chromecast . Los códecs compatibles son: wav y flac . A pesar del hecho de que aac puede usar la frecuencia de muestreo 96000Hz , la tasa de bits corresponde a la de un formato de compresión de datos con pérdida. Por lo tanto, las siguientes combinaciones pueden lograr esta capacidad 24-bit/96kHz :
wav + 96000Hz .flac + 96000Hz Rose de muestreo.Referencias:
Ahora puede proyectar videos a su elenco de Google usando MkChromecast . Esta característica funciona con Backends node y ffmpeg y desde la línea de comandos. En el futuro, pueden ser una interfaz gráfica para este proceso. Ver este proyecto.
bin/mkchromecast --video -i "/path/to/file.mp4"
bin/mkchromecast --video -i "/path/to/file.mp4" --encoder-backend node
Nota : El formato del archivo puede ser lo que sea compatible con ffmpeg y no 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 mkChromecast cuando lo ejecuta desde la consola, simplemente presione la tecla Ctrl-C o Q para dejar de fumar (cuando se pasa la bandera --control ).
Al iniciar desde la bandeja del sistema, use el botón Quit en la bandeja del sistema.
Para obtener más ayuda:
bin/mkchromecast -h
o al instalar el paquete Debian:
mkchromecast -h
node , no es posible usar ni las banderas --subtitle ni las --seek .mp3 y aac . No daré apoyo wma . Aparentemente, hay una manera de jugar wav , y ogg que intentaré implementar más tarde. parec y lame Coder, el retraso entre audio reproducido y escuchado puede ser de hasta 8 segundos. Te sugiero que uses algo diferente a MP3.También puede consultar las preguntas frecuentes para obtener más información.