nœud (socket) flux audio en direct / diffusion
S'il vous plaît, est-il un moyen simple de diffuser (broadcast) fichier multimédia (ogg, mp3, spx,..) depuis le serveur vers le client (navigateur) via NODE.js et éventuellement PRISE.IO?
J'ai enregistrer l'entrée audio sur le côté serveur et ensuite être capable de jouer en temps réel pour de nombreux clients.
Je me suis amusé avec binary.js ou la prise.io flux mais n'était pas en mesure d'obtenir ce droit.
J'ai essayé d'encoder l'audio d'entrée avec speex, vorbis ou boiteux, puis de le charger par la FS pour le client mais je n'ai pas été couronnée de succès. Ou dois-je capture PCM et décoder ensuite dans le navigateur?
Toute suggestion sur ce, rien Ive trouvé m'a jamais aidé.
Merci beaucoup pour les conseils, des liens et des idées.
Je suis également intéressé en direct streaming audio. En plus je suis en train de lire ce sujet, le noeud les ruisseaux, les contre-pression, de tampon et de tous les trucs que vous devez prendre soin de, moins je sais comment l'aborder. Il y a un post-nice. J'essaie d'éviter d'utiliser SHOUTcast/Icecast mais peut-être que ce serait le moyen le plus facile.
rubrique sur MDN
Ce qui est vraiment important pour moi est d'éliminer retarder autant que possible. Je ne se soucient pas de la qualité. L'audio/vidéo html5 élément par lui-même est en retard dans tous les principaux navigateurs avec tout ce que j'ai essayé jusqu'à présent. Donc audiocontext et usermedia sont probablement le moyen. Mais toujours pas de réussite pour moi.
OriginalL'auteur ango | 2014-04-30
Vous devez vous connecter pour publier un commentaire.
Vous aurez envie de regarder pour les packages de travail sur les cours d'eau et à partir de là, c'est juste à propos de la tuyauterie de votre flux de sortie si nécessaire. Express, ou tout simplement le HTTP intégré, vous pouvez réaliser cela très facilement. Voici un exemple construit autour de osx-audio qui fournit un flux PCM, boiteux qui peut encoder un flux au format mp3, et de l'Exprimer:
Comment vous obtenez votre flux d'entrée peut être la partie la plus intéressante, mais cela dépend de votre mise en œuvre. Le populaire
request
paquet est construit autour des cours d'eau en tant que bien, donc c'est peut-être juste une requête HTTP de suite!!!N'ai pas essayé cette solution, mais semble intéressante. Je vais vous laisser savoir comment cela se passait.
OriginalL'auteur milkandtang
Sur le navigateur web que vous avez l'élément HTML5 video et l'audio de l'élément. Deux d'entre eux ont des sources. Chaque navigateur web prend en charge plusieurs codecs en mode natif. De sorte que vous aurez envie de regarder dehors pour que si vous essayez de flux mp3.
Vous n'avez pas besoin de support.io, vous avez seulement besoin de HTTP. Votre application est la lecture d'un fichier,
music.ogg
, et pour chaque morceau il lit, il va l'envoyer par le serveur http. Ce sera une simple requête HTTP qui est maintenue ouverte jusqu'à ce que le fichier est transféré.Voici comment votre html regardez:
Et votre nodejs code sera quelque chose comme ceci (n'ai pas testé):
Je suis le seul à l'aide de la ReadableStream.pipe méthode sur la
inputStream
et le http et fs modules pour le code ci-dessus. Si vous souhaitez transcoder le fichier audio (par exemple, à partir d'un mp3 en ogg), vous aurez envie de trouver un module qui le fait et le tuyau de données à partir du fichier dans le transcodeur puis dansresponse
:La méthode d'appel
end
sur le flux à chaque fois que c'est fini d'écrire, de sorte que la requête HTTP sera terminée dès que le fichier en cours de lecture (et de transcodage).Vous avez besoin d'utiliser
createReadStream
au lieu deopen
pour tuyau de choses.OriginalL'auteur
Vous pouvez faire cela avec nœud et RTC. Il y a certains outils prêts à l'utiliser comme SimpleWebRTC ou EasyRTC. Pour ce que j'ai déjà testé la vidéo est toujours un mal, mais l'audio fonctionne très bien.
OriginalL'auteur Scoup