我正在尝试将Jitsi Videobridge集成到我现有的WebRTC应用程序中.
现在信号是相对简单的,提供,答案,候选人,我们正在运行.
我找不到关于如何集成像Jitsi这样的选择性转发解决方案的简单文档或教程,一切似乎都说得太高了(见这里).
有人可以具体地向我解释提供,答案,候选模型如何与Jitsi一起改变,我怎样才能通过视频桥建立一对一的呼叫?
我目前的分析,我认为我应该打Jitsi通过REST接口来获得候选人和换出host,srvflx以及relay从视频桥的那些候选人我产生当前.这甚至是在正确的轨道上?
谁能给我提供一个生成 jwt 令牌的示例,其中三个标头为(alg、kid、typ),格式如下:
{
"alg": "RS256",
"kid": "vpaas-magic-cookie-1fc542a3e4414a44b2611668195e2bfe/4f4910",
"typ": "JWT"
}
Run Code Online (Sandbox Code Playgroud)
在https://developer.8x8.com/jaas/docs/api-keys-jwt下。
Jwt 令牌会在几个小时的时间限制内过期,因此我试图找到一种在我的代码本身中生成令牌的方法。
最后,我的 javascript 如下所示,我在选项列表中添加 jwt 令牌以进行身份验证。
var options = {
roomName: "vpaas-magic-cookie-secretKey/Room123",
jwt: 'JWTTOKEN',
,
Run Code Online (Sandbox Code Playgroud)
根据我在https://jwt.io/下阅读的内容,我需要来自解码详细信息的编码密钥。根据生成令牌,我认为它使用 HS256 算法。在 javascript 中执行此操作的步骤是什么?
编辑:在用户回答后,我对他的代码做了一些更改,目前正在生成一半的 JWT 令牌。我正在使用服务器上已生成的令牌进行检查 - Jaas.8x8
<script>
const HMACSHA256 = (stringToSign, secret) => "not_implemented"
// The header typically consists of two parts:
// the type of the token, which is JWT, and the signing algorithm being used,
// such as HMAC SHA256 or RSA.
const header …Run Code Online (Sandbox Code Playgroud) 我们正在使用 Jitsi 实现安全的视频会议/聊天。我们找不到 Jitsi 服务器的任何硬件要求。您能否分享您对测试和生产环境中 Jitsi 服务器的硬件要求的看法?
谢谢,赛义德
在播放解码后的音频时,我设法制作了各种各样的声音,从潺潺到尖锐的恶魔吟唱.最接近的声音类似于在快进和播放中播放仅持续约15秒.我已尝试使用解码和AudioSystem API方法的大量参数组合,似乎没有任何工作.
那么,导致这种音频失真的原因是什么?
此文件的Opusinfo显示以下内容:
Processing file "test.opus"...
New logical stream (#1, serial: 00002c88): type opus
Encoded with libopus 1.1
User comments section follows...
ENCODER=opusenc from opus-tools 0.1.9
Opus stream 1:
Pre-skip: 356
Playback gain: 0 dB
Channels: 1
Original sample rate: 44100Hz
Packet duration: 20.0ms (max), 20.0ms (avg), 20.0ms (min)
Page duration: 1000.0ms (max), 996.8ms (avg), 200.0ms (min)
Total data length: 1930655 bytes (overhead: 1.04%)
Playback length: 4m:09.173s
Average bitrate: 61.99 kb/s, w/o overhead: 61.34 kb/s
Logical stream 1 ended …Run Code Online (Sandbox Code Playgroud) 我正在调整Jitsi以在呼叫进行时播放Wav文件.
我在做这件事时遇到了麻烦,如果你能帮助我,我将不胜感激.
我可以在调用开始之前切换数据源,方法是使用自定义AudioFileMediaDevice并在CallPeerMediaHandler中打开它.
但是在调用正在进行时,我在更换数据源方面遇到了问题.
================================================== ===========
我尝试过以下但无法使其正常工作.
1)我尝试获取设备的输出数据源,并使用addInDataSource方法添加了wav文件的URLDatasource.没工作.
DataSource dataSource = device.createOutputDataSource();
DataSource fileDataSource = Manager.createDataSource(new URL("file://resources/sounds/Sample.wav"));
((AudioMixingPushBufferDataSource)dataSource).addInDataSource(fileDataSource);
Run Code Online (Sandbox Code Playgroud)
2)我尝试添加自定义Capture设备并切换它,但它也不起作用:
CaptureDeviceInfo2 fileDevice =
new CaptureDeviceInfo2("Recorded Audio 1",
fileDataSource.getLocator(), null, null, null, null);
((MediaServiceImpl) LibJitsi.getMediaService())
.getDeviceConfiguration().getAudioSystem().setDevice(AudioSystem.DataFlow.CAPTURE, fileDevice, false);
Run Code Online (Sandbox Code Playgroud)
这虽然适用于播放,而不是捕获设备.
3)我甚至尝试添加一个新的音频系统,将播放设备作为文件数据源,但这也不起作用.
================================================== ===========
我是libjitsi的新手,所以我很难尝试解码正在发生的事情.关于如何解决这个问题的任何指示都会很棒.
TL; DR:在一个基于WebRTC的网络研讨会平台上工作,该平台应允许1000个人在一个房间内,Jitsi Meet完成工作但强制连接(和服务器线程)每个哦 - 每个,这是1,000,000个线程服务器 - >无法工作.Jitsi创始人建议在没有lib-jitsi-meet的情况下进行,直接调用REST API,指向文档
https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest-colibri.md
但它提供了比答案更多的问题.
是否有任何完整的端到端示例,说明如何将网络摄像头流传输到Jitsi Videobridge,然后在浏览器中使用JS在另一个客户端中播放(如果它只是Chrome,则可以),不使用lib- jitsi-见面吗?当然,客户端之间的一些其他形式的连接,例如socket.io或其他任何东西,都是可能的.
我已经在Jitsi 中实现了一些更改并尝试生成 Windows 安装程序文件,但我没有得到任何有关如何使用 Ubuntu/Windows 执行此操作的信息。我正在使用 Ubuntu 19.10。
试过了?
我尝试使用本指南实施,但没有找到相同的目录结构。
更新
我已经尝试使用本指南,但它会导致许多问题。其中一些是这样的:
错误:未找到名为config.h 的文件
我知道错误发生时提供的指定路径中缺少该文件。但是这个文件既不是JITSI 的官方存储库,也不是其他任何地方。
使用此方法创建的 EXE 在它创建的文件夹中不起作用。它不会将依赖项复制到 EXE,而是复制到一个文件夹中,我需要将其保存在需要运行 EXE 文件的任何位置,这不是一个好习惯。
此方法仅适用于 Windows PC。我总是无法访问Windows PC,因此通过这种方法对我来说也确实有问题。
问题
我是否需要EXE仅使用 Windows编译文件?如果是这样,我怎样才能做到这一点?或者,否则,我如何使用 Ubuntu 创建它。exe 文件必须像任何其他可执行文件一样安装到 Program Files。谢谢
我想做什么?
- 为 Windows 创建 Jitsi 安装程序(使用 Ubuntu 或 Windows)。
- 安装程序应该像 Netbeans 或任何其他安装程序的安装程序一样安装。
- 安装程序应自行管理 JDK/JRE 的安装。(它不应该要求用户安装 JDK/JRE)。
- 它应该创建一个目录结构,如安装 Netbeans 等
。我得到了什么?
- 使用本指南,我将在 Windows 上创建一个可运行的 EXE 文件。(我没有为此目的在 …
我正在使用 jitsi 库进行视频连接。第一次安装时它工作正常,但如果用户已经拥有应用程序并从 Play 商店更新它,它就会崩溃。崩溃日志说:
类 Lokhttp3/internal/Util 中没有静态方法 delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I; 或其超类('okhttp3.internal.Util' 声明出现在 base.apk!classes3.dex 中)
有 2 个自动生成的文件:1) okhttp3.JavaNetCookieJar 2) okhttp3.internal.Util。
从 class 中JavaNetCookieJar,在类delimiterOffset(header, pos, limit, ";,")中调用此方法Util。
Util类的 delimiterOffset() 方法与调用的方法不兼容:
delimiterOffset(delimiters: String, startIndex: Int = 0, endIndex: Int = length)
delimiterOffset(delimiter: Char, startIndex: Int = 0, endIndex: Int = length)
上面的方法是在类中调用的Util。
当我将鼠标悬停在JavaNetCookieJar类上时,它说它来自okhttp3-urlconnection-3.12.1包,当我将鼠标悬停在Util包上时,它说它来自okhttp-4.8.0. 我在用
implementation 'com.squareup.okhttp3:logging-interceptor:4.8.0'
有趣的是,即使我在 gradle 中删除 okhttp3 实现,这两个文件也不会受到影响。
我想构建一个移动应用程序,其中一个参与用户可以一次向其他参与者广播音频,其他参与者只能收听音频,Ant Media、Jitsi 和 Janus 哪个最适合在移动应用程序中开始一对多的实时语音流?
我是 React-native 和 Jitsi-Meet 的新手。\n我尝试使用 Jitsi Meet 开发一个视频通话应用程序。\n我按照官方网站上的描述应用了所有内容,但出现了图片中的错误。
\n\n这是我的一些代码
\n在我的 Jitsi.js 组件上=
\nimport React from \'react\';\nimport { View } from \'react-native\';\nimport JitsiMeet, { JitsiMeetView } from \'react-native-jitsi-meet\';\n\nclass VideoCall extends React.Component {\n constructor(props) {\n super(props);\n this.onConferenceTerminated = this.onConferenceTerminated.bind(this);\n this.onConferenceJoined = this.onConferenceJoined.bind(this);\n this.onConferenceWillJoin = this.onConferenceWillJoin.bind(this);\n }\n\n\n componentDidMount() {\n console.log(props);\n\n const { username, roomname } = this.props;\n\n setTimeout(() => {\n const url = `https://your.jitsi.server/${roomname}`; // can also be only room name and will connect to jitsi …Run Code Online (Sandbox Code Playgroud)jitsi ×10
jitsi-meet ×4
javascript ×3
webrtc ×3
audio ×2
java ×2
android ×1
dependencies ×1
device ×1
file ×1
hardware ×1
jwt ×1
ogg ×1
okhttp ×1
opus ×1
react-native ×1
reactjs ×1
rest ×1
server ×1