通过网络将系统音频流式传输到 Web 浏览器 (javascript)
Posted
技术标签:
【中文标题】通过网络将系统音频流式传输到 Web 浏览器 (javascript)【英文标题】:Stream system audio to web browser (javascript) over network 【发布时间】:2018-07-30 05:46:25 【问题描述】:我正在寻找是否可以调出由 1 台 PC 和 1 部智能手机组成的环境:
-
PC1 运行时不带屏幕并使用 JACK 音频服务器(或 alsa 或其他)
智能手机连接到PC1的同一网络,浏览器指向http://pc1/
是否可以在智能手机的 WebBrowser 上流式传输 PC1 的系统音频? 任何人都可以解释我怎么做?在服务器端(Linux/Jackd)和客户端(带有音频 API 的 WebBrowser 上的 javascript)
问候
【问题讨论】:
如果 1) 上没有浏览器,那么你需要 C++ WebRTC native 或类似的 我不能用 Jackd 来做这件事吗?你有什么例子可以分享吗? 究竟谁是音频的来源?你想用外行的话做什么?例如,您可以从 nodejs 服务器流式传输到浏览器(即 mp3 播放列表) 音源是整个PC1的系统声音(安装了Jackd,还有NodeJS)。是否可以通过浏览器的webSocket串流整个系统声音? 【参考方案1】:好的,所以你有一台带有 jack 和 nodejs 作为 http 服务器的电脑。
您需要做的是安装ffmpeg,并按照以下说明操作:https://www.ffmpeg.org/ffmpeg-devices.html#jack
您将在 nodejs 中使用 ffmpeg 将输出流式传输到浏览器。
关于使用 nodejs 流式传输视频和音频有几个问题。您可以简单地提供一个渐进式 http 流,浏览器就会播放它。
最后你不会使用 web-audio api、sockets 或 WebRTC
【讨论】:
我知道FFMPEG,但我用它来进行音视频转换。 FFMPEG 似乎试图在文件系统上写入文件并使用 JACKD 客户端对其进行流式传输,但我必须无延迟地传输 PC1 系统产生的音频(因此我在 PC1 系统上没有 wav 文件)。智能手机上的浏览器必须以某种方式流式传输 PC1 系统音频 您不需要写入文件,您可以将 ffmpeg 输出直接通过管道传输到 http 响应。但是你会有几秒钟的延迟。对于接近零延迟的只能想到webrtc。 一些带有 FFMPEG 的 WebRTC 示例? 好吧,正如我所说,由于服务器端没有浏览器,您不能简单地使用可用的 webrtc javascript api。您可以搜索 webrtc nodejs 库,但如果我没记错的话,只实现了数据通道,您不能使用音频流。然后,您将需要一些媒体流服务,例如 red5,或者使用 c++ webrtc native 自己实现它,但没有好的示例可用。这是我迄今为止从我的研究中所知道的。以上是关于通过网络将系统音频流式传输到 Web 浏览器 (javascript)的主要内容,如果未能解决你的问题,请参考以下文章