Je n'ai pas trop de temps récemment pour m'occuper du projet. Si vous souhaitez aider, veuillez commenter le # 398
Il s'agit d'un programme pour lancer votre audio macOS , ou audio Linux sur vos appareils Google Cast ou en haut-parleurs Sonos. Il peut également lancer des fichiers vidéo.
Il est écrit pour Python3, et il peut diffuser via node.js , parec ( Linux ) ou ffmpeg . MkchromeCast est capable d'utiliser des formats audio avec perte et sans perte à condition que ffmpeg ou parec ( Linux ) soient installés. Il prend également en charge la lecture de groupe multi-pièces et une résolution audio élevée 24 bits / 96 kHz. De plus, un menu de plateau système est disponible.
Par défaut, MkchromeCast diffuse avec node.js (ou parec dans Linux ) avec un format de codage audio mp3 à une fréquence d'échantillonnage de 44100Hz et un débit binaire moyen de 192k . Ces valeurs par défaut peuvent être modifiées à l'aide des indicateurs --sample-rate et -b . Il est utile de modifier ces paramètres lorsque votre routeur sans fil n'est pas très puissant, ou dans le cas, vous ne voulez pas dégrader la qualité sonore. Pour plus d'informations, visitez le wiki et la FAQ.
Vous pouvez éventuellement installer ffmpeg plus d'informations ici). Les utilisateurs de Linux peuvent également configurer ALSA pour capturer l'audio. Notez que parfois le décalage entre jouer une chanson et une audition peut être jusqu'à 8 secondes pour certains backends.
Pour avoir une idée d'utiliser Mkchromecast de Console, vérifiez ce GIF.
Mkchromecast fournit un menu de bacs à système bêta . Il vous oblige à installer PyQt5 . Pour plus d'informations, vérifiez les exigences et l'installation des sections.
Voici à quoi ressemble le menu du plateau système:
Vérifiez ces images:
Si vous avez des haut-parleurs Sonos, vous pouvez jouer tout ce que vous écoutez dans votre ordinateur avec mkchromecast . Pour ajouter la prise en charge de Sonos, installez le module soco Python:
pip3 install soco
Si vous souhaitez contribuer, vous pouvez vous aider en signalant des problèmes ou en créant des demandes de traction avec vos développements / améliorations. Si votre cas est le dernier, visitez la section de développement dans le wiki.
Afin d'utiliser MkchromeCast , vous avez besoin du logiciel suivant pour diffuser avec node.js :
Pour plus de contrôle, vous avez besoin ffmpeg comme backend. Dans ce cas, installez ce qui suit:
Pour ceux qui n'aiment pas Pulseaudio, il est possible de lancer à l'aide d'Alsa. Dans ce cas, les exigences sont:
Il existe deux façons d'installer cette application:
Il existe une application autonome pour les utilisateurs de macOS . Vous devez le faire glisser vers votre /Applications/ .
Téléchargez le dernier DMG ici. Vous devez également installer Blackhole.
Si vous utilisez Homebrew, il est possible d'installer le binaire comme suit:
brew install --cask mkchromecast
Si vous trouvez un problème avec la demande, veuillez le signaler ici.
Mkchromecast est disponible dans les référentiels officiels Debian. Pour l'installer, faites-le:
apt install mkchromecast
Téléchargez le dernier package DEB ici et installez-le comme suit:
sudo apt -f install ./mkchromecast_$VERSION_all.deb
où $VERSION = XYZ-Rev , par exemple : 0.2.6-1 .
Cela devrait fonctionner dans Debian instable et les tests. J'apprécierais également les testeurs d'Ubuntu. Si vous trouvez des problèmes, veuillez le signaler ici.
Si vous rencontrez d'autres problèmes liés aux dépendances, veuillez en discuter ici ou ouvrir un nouveau problème.
De plus, il existe deux packages de dépendance pour tirer les dépendances PulsEaudio ou ALSA:
apt-get install mkchromecast-alsa (ALSA users)
ou
apt-get install mkchromecast-pulseaudio (Pulseaudio users)
Pour installer mkchromecast , clone ce référentiel:
git clone https://github.com/muammar/mkchromecast.git --depth 1
Ou vous pouvez télécharger l'une des versions stables ici et décompresser le fichier.
Mkchromecast est disponible à l'AUR:
# install with aurman
aurman -S mkchromecast # install with aurutils
aur sync mkchromecast Si vous obtenez l'erreur cannot import name 'DependencyWarning' dans Arch Linux, veuillez vérifier le problème n ° 31.
Pour installer des exigences Python, utilisez le fichier requirements.txt expédié dans ce référentiel:
pip install -r requirements.txt
Remarque : Si cette étape échoue, vous devez peut-être exécuter l'installation avec sudo comme indiqué ci-dessous. Cependant, avant l'installation en utilisant cette méthode, vérifiez pourquoi un utilisateur régulier ne peut pas installer ces exigences.
sudo pip install -r requirements.txt
Les utilisateurs de Linux peuvent essayer d'installer ces exigences Python à l'aide des gestionnaires de packages avec leurs distributions.
Exemple pour les distros basés sur 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
Remarque : Si python3-pychromecast n'est pas disponible dans votre référentiel, suivez les instructions dans # 9.
Pour l'installation de BlackHole, vous pouvez vérifier https://github.com/existitentialaudio/blackhole et simplement télécharger le dernier fichier DMG.
Si vous avez Homebrew, vous pouvez utiliser Brew Cask comme suit:
brew install --cask blackhole
Par défaut, la fréquence d'échantillonnage dans Blackhole est définie sur 44100Hz . Si vous souhaitez diffuser à des taux d'échantillonnage plus élevés, suivez les instructions du wiki.
Remarque : Le rééchantillonnage à des taux d'échantillonnage plus élevés n'est pas une bonne idée. C'était en effet un problème dans les appareils audio Chromecast. Voir ce fil. Par conséquent, si vous voulez aller au-delà de 44100Hz , vous devez capturer le son à un taux d'échantillonnage plus élevé.
Le moyen le plus simple d'installer ffmpeg est d'utiliser un gestionnaire de packages, par exemple : Brew, Macports ou Fink. Ou dans le cas de Linux , par exemple : apt, yum ou pacman.
Je décrirai brièvement le cas de Homebrew ici. Tout d'abord, vous aurez besoin de Homebrew installé dans votre machine:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Une fois Homebrew prêt, vous pouvez installer ffmpeg . Comme indiqué sur le site Web FFMPEG, et pour pouvoir utiliser tous les formats de codage audio dans MkchromeCast , il est préférable d'installer ffmpeg avec les options suivantes activées:
brew install ffmpeg --with-fdk-aac --with-tools --with-freetype --with-libass --with-libvorbis --with-libvpx --with-x265 --with-opus
Comme j'utilise Debian, la façon d'installer ffmpeg est:
apt-get install ffmpeg
Formats de codage audio disponibles avec les backends parec et ffmpeg
| Format de codage audio | Description | Notes |
|---|---|---|
mp3 | MPEG Audio Layer III (par défaut) | Format de compression avec perte (débit binaire par défaut: 192k) |
ogg | Ogg vorbis | Format de compression avec perte (débit binaire par défaut: 192k) |
aac | Codage audio avancé (AAC) | Format de compression avec perte (débit binaire par défaut: 192k) |
opus | Opus | Format de compression avec perte (débit binaire par défaut: 192k) |
wav | Format de fichier audio de forme d'onde | Format sans perte (Sound HQ) |
flac | Codec audio gratuit sans perte | Format sans perte (Sound HQ) |
Ces liaisons Python sont nécessaires si vous avez l'intention d'utiliser le menu du plateau système. Parfois, pip est capable d'installer PyQt5 et pip install pyqt5 est suffisant.
Si cela ne fonctionne pas pour vous, je vous suggère de l'installer à l'aide d'un gestionnaire de packages.
Exemple avec Homebrew:
brew install pyqt5 --with-python3
apt-get install python3-pyqt5
Ou si vous le souhaitez, vous pouvez le faire vous-même à partir des sources.
Pour mettre à jour les sources MkchromeCast , accédez simplement au répertoire cloné et:
git pull
Ou si vous le préférez, vous pouvez simplement passer l'argument --update à mkchromecast :
bin/mkchromecast --update
Si vous utilisez l'application macOS :
Check For Updates .mkchromecast.app dans votre /Applications/ répertoire. Les utilisateurs de Linux doivent soit effectuer une apt-get upgrade ou télécharger le dernier DEB ici, et dpkg -i mkchromecast_$VERSION_all.deb .
Entrez dans le répertoire Mkchromecast cloné et exécutez:
bin/mkchromecast
Cela lancera MkchromeCast à l'aide de node.js (ou parec pour les utilisateurs de Linux ), et fera la partie de streaming avec le format de codage audio mp3 . node.js fonctionne décemment, mais le serveur peut avoir tendance à échouer dans certaines circonstances. Dans un tel cas, MkchromeCast est capable de redémarrer automatiquement le processus de streaming / coulée . Ainsi, certains hoquets sont attendus.
Remarque : La plupart des étapes décrites ici sont les mêmes pour les utilisateurs de macOS et Linux . Cependant, si vous lancez la commande ci-dessus dans Linux , le processus est moins automatisé. Dans Linux , vous devez sélectionner avec pavucontrol le puits appelé Mkchromecast pour diffuser à moins que vous n'utilisiez ALSA. Voir le wiki pour plus d'informations. tl; dr ?, Vérifiez simplement le gif ci-dessous.
Remarque : Le processus de distribution est indépendant de la sélection du puits Pulseaudio. Cela signifie que MkchromeCast indiquera à l'appareil de distribution d'écouter votre ordinateur, mais aucun son ne sera entendu avant de sélectionner l'évier. Pour les utilisateurs d'Alsa, cela ne s'applique pas.
ffmpeg avec mkchromecast installé à partir de sources Ci-dessous un exemple en utilisant mp3 :
bin/mkchromecast --encoder-backend ffmpeg
Avec ffmpeg vous pouvez modifier le codec:
bin/mkchromecast --encoder-backend ffmpeg -c aac
Modifier le débit et la fréquence d'échantillonnage:
bin/mkchromecast --encoder-backend ffmpeg -c mp3 -b 128 --sample-rate 31000
Vérifiez la section Blackhole (utilisateurs de macOS uniquement) pour en savoir plus sur les taux d'échantillonnage.
Vous pouvez également définir l'hôte IP manuellement, ce qui est une option utile lorsque vous avez plus d'une connexion réseau active ou lorsque la détection IP automatiquement échoue:
bin/mkchromecast --host 192.168.1.1
Pour lancer à l'aide du format de codage audio parec et wav :
mkchromecast -c wav
Il existe également une option pour modifier le bitrate , et dans ce cas avec ffmpeg :
mkchromecast --encoder-backend ffmpeg -c ogg -b 128
et un autre pour modifier le taux d'échantillonnage:
mkchromecast --encoder-backend ffmpeg -c ogg -b 128 --sample-rate 48000
Pour le lancer:
bin/mkchromecast -t
ou
mkchromecast -t
L'application de plateau système peut effectuer toutes les actions des commandes susmentionnées. Pour avoir une idée, veuillez consulter la vidéo YouTube ici.
Vous pouvez jouer des URL YouTube (ou d'autres sites sans tête à partir de la ligne de commande:
bin/mkchromecast -y https://www.youtube.com/watch?v=NVvAJhZVBT
Pour utiliser cette fonction, vous devez installer youtube-dl . Dans MacOS, cela peut être fait avec HomeBrew: brew install youtube-dl . Dans Distros basés sur Debian: apt-get install youtube-dl .
Remarque : vous devrez peut-être enfermer l'URL entre les guillemets, et seules les URL sur https sont prises en charge.
Vous pouvez lire toutes les URL source sans tête à partir de la ligne de commande:
bin/mkchromecast --source-url SOURCE_URL
Cette option est utile pour:
http .Exemple:
bin/mkchromecast --source-url http://192.99.131.205:8000/pvfm1.ogg -c ogg --control
Comme on peut le voir ci-dessus, le codec doit être spécifié avec l'indicateur -c .
Remarque : .m3u ou .pls ne sont pas encore pris en charge.
Vous pouvez contrôler le volume de votre appareil Google Cast en lançant MkchromeCast avec l'option --control :
bin/mkchromecast --encoder-backend ffmpeg -c ogg -b 320 --control
Cela vous permettra d'appuyer sur les clés U et D pour volume up et volume down respectivement.
Le plateau système a une fenêtre avec un curseur de volume pour réaliser volume up et volume down .
MkchromeCast vous permet de lancer en utilisant une résolution audio élevée 24-bit/96kHz . Il s'agit de la capacité audio chromecast maximale . Les codecs pris en charge sont: wav et flac . Malgré le fait que aac peut utiliser la fréquence d'échantillonnage 96000Hz , le débit binaire correspond à celui d'un format de compression de données avec perte. Par conséquent, les combinaisons suivantes peuvent atteindre cette capacité 24-bit/96kHz :
wav + 96000Hz .flac + 96000Hz Taux d'échantillonnage.Références:
Vous pouvez désormais jeter des vidéos sur votre Google Cast à l'aide de mkchromecast . Cette fonctionnalité fonctionne à la fois avec les backends node et ffmpeg et à partir de la ligne de commande. À l'avenir, ils peuvent être une interface graphique pour ce processus. Voir ce projet.
bin/mkchromecast --video -i "/path/to/file.mp4"
bin/mkchromecast --video -i "/path/to/file.mp4" --encoder-backend node
Remarque : Le format du fichier peut être ce qui est pris en charge par ffmpeg et non exclusivement 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
Pour tuer Mkchromecast lorsque vous l'exécutez à partir de la console, appuyez simplement sur la touche Ctrl-C ou Q pour quitter (quand --control le coup de contrôle est passé).
Lors du lancement à partir du plateau système, utilisez le bouton Quit dans le plateau système.
Pour obtenir plus d'aide:
bin/mkchromecast -h
ou lors de l'installation du package Debian:
mkchromecast -h
node , il n'est pas possible d'utiliser ni les indicateurs --subtitle ni les --seek .mp3 et aac . Je ne donnerai pas le soutien wma . Apparemment, il existe un moyen de jouer wav , et ogg que j'essaierai de mettre en œuvre plus tard. parec et lame ENODER, le retard entre l'audio joué et écouté peut atteindre 8 secondes. Je vous suggère d'utiliser quelque chose de différent de MP3.Vous pouvez également vérifier la FAQ pour plus d'informations.