【问题标题】:Stream system audio to web browser (javascript) over network通过网络将系统音频流式传输到 Web 浏览器 (javascript)
【发布时间】:2018-07-30 05:46:25
【问题描述】:

我正在寻找是否可以调出由 1 台 PC 和 1 部智能手机组成的环境:

  1. PC1 运行时不带屏幕并使用 JACK 音频服务器(或 alsa 或其他)
  2. 智能手机连接到PC1的同一网络,浏览器指向http://pc1/

是否可以在智能手机的 WebBrowser 上流式传输 PC1 的系统音频? 任何人都可以解释我怎么做?在服务器端(Linux/Jackd)和客户端(带有音频 API 的 WebBrowser 上的 Javascript)

问候

【问题讨论】:

  • 如果 1) 上没有浏览器,那么你需要 C++ WebRTC native 或类似的
  • 我不能用 Jackd 来做这件事吗?你有什么例子可以分享吗?
  • 究竟谁是音频的来源?你想用外行的话做什么?例如,您可以从 nodejs 服务器流式传输到浏览器(即 mp3 播放列表)
  • 音源是整个PC1的系统声音(安装了Jackd,还有NodeJS)。是否可以通过浏览器的webSocket串流整个系统声音?

标签: javascript linux webrtc web-audio-api jack


【解决方案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 自己实现它,但没有好的示例可用。这是我迄今为止从我的研究中所知道的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-14
  • 2020-11-01
  • 1970-01-01
  • 2012-11-20
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多