标签: apprtc

Android webrtc 不适用于 3g、4g

在 android 应用程序中,我有用户 webrtc 用于视频通话应用程序。

如果手机与 wifi 连接,则应用程序完美运行。

当我将 wifi 更改为移动数据并启动应用程序时,应用程序无法运行,也无法显示视频。

我的应用程序和服务器端 kurento 中有用户 webrtc。

下面是带有状态的场景列表:

  1. 浏览器客户端 + 移动客户端 ->都在同一个 Wifi 网络上(KMS 服务器在同一个 wifi 网络上)-> 工作正常
  2. 移动客户端 + 移动客户端 ->都在同一个 Wifi 网络上(KMS 服务器在同一个 wifi 网络上)-> 工作正常
  3. 浏览器客户端 + 移动客户端 ->其中一个在 wifi 上(同一 wifi 网络上的 KMS 服务器)和其他在移动数据网络上 -> 不工作
  4. 移动客户端 + 移动客户端 ->其中一个在 wifi 上(同一 wifi 网络上的 KMS 服务器)和其他在移动数据网络上 -> 不工作

我们已经为所有这些场景生成了检查候选,发现它们是相同的,唯一的区别是生成了多个候选。

我们有crate Turn 服务器以及 Stun,但视频无法3g 连接的 android 客户端中显示

任何人都有解决方案然后帮助我。 …

android video-streaming webrtc kurento apprtc

7
推荐指数
1
解决办法
7698
查看次数

使用 WebRTC 通过 ReplayKit 发送 iOS 设备的屏幕截图

我们希望使用 WebRTC 使用 ReplayKit 发送 iOS devices\xe2\x80\x99 屏幕捕获。\nReplayKit 有一个 processSampleBuffer 回调,它提供 CMSampleBuffer。

\n\n

但这就是我们陷入困境的地方,我们\xe2\x80\x99似乎无法将CMSampleBuffer发送到连接的对等点。\n我们尝试从sampleBuffer创建pixelBuffer,然后创建RTCVideoFrame。

\n\n

我们还从 RTCPeerConnectionFactory 中提取了 RTCVideoSource,然后使用 RTCVideoCapturer 并将其流式传输到 localVideoSource。

\n\n

知道我们做错了什么吗?

\n\n
var peerConnectionFactory: RTCPeerConnectionFactory?\n\noverride func processSampleBuffer(_ sampleBuffer: CMSampleBuffer, with sampleBufferType: RPSampleBufferType) {\n switch sampleBufferType {\n           case RPSampleBufferType.video:\n\n        // create the CVPixelBuffer\n        let pixelBuffer:CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)!;\n\n        // create the RTCVideoFrame\n        var videoFrame:RTCVideoFrame?;\n        let timestamp = NSDate().timeIntervalSince1970 * 1000\n        videoFrame = RTCVideoFrame(pixelBuffer: pixelBuffer, rotation: RTCVideoRotation._0, timeStampNs: Int64(timestamp))\n\n        // connect the video frames to the WebRTC\n        let localVideoSource = …
Run Code Online (Sandbox Code Playgroud)

screensharing ios webrtc apprtc replaykit

7
推荐指数
1
解决办法
5299
查看次数

如何在AppRTC iOS应用程序中获取帧数据以进行视频修改?

我目前正在尝试对Swift 中 iOS 版 AppRTC 应用程序中传入的 WebRTC 视频流进行一些修改(该应用程序又基于Objective-C 版本)。为此,我需要访问存储在类 RTCI420Frame 的帧对象中的数据(这是libWebRTC的 Objective-C 实现的基本类)。特别是,我需要一个字节数组:[UInt8]和帧的大小。该数据将用于进一步处理和添加一些过滤器。

问题是, RTCVideoTrack / RTCEAGLVideoView 上的所有操作都是在预编译的libWebRTC.a的引擎盖下完成的,它是从上面链接的官方 WebRTC 存储库编译的,并且获得它的自定义构建相当复杂,所以我更喜欢使用示例 iOS 项目中可用的构建;根据我的理解,它应该具有所有可用的功能。

我正在研究 RTCVideoChatViewController 类,特别是remoteView / RemoteVideoTrack,但在访问帧本身方面没有成功,花了很多时间研究官方存储库中的 libWebRTC 源代码,但仍然无法解决访问帧的问题框架数据以供自己使用它进行操作。很高兴获得任何帮助!

video-streaming webrtc apprtcdemo swift apprtc

5
推荐指数
1
解决办法
2237
查看次数

无法在 ubuntu 14.04 中安装 gclient 命令

我正在Ubuntu 14.04 中安装一个名为gclient的命令。但它不起作用并且没有给出任何错误消息。我从以下存储库克隆命令

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
Run Code Online (Sandbox Code Playgroud)

然后我运行下面给出的命令

$ export PATH=`pwd`/depot_tools:"$PATH"
Run Code Online (Sandbox Code Playgroud)

当我运行gclient命令时,它给出以下消息

gwl@gwl-B85M-D3H:~/rajendra$ gclient
: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我不明白我做错了什么。

git android webrtc apprtc

5
推荐指数
1
解决办法
5202
查看次数

WebSocket - 状态码403和状态消息 - 禁止

我正在使用下面提到的Apprtc.Follow视频通话应用程序.

  1. https://github.com/njovy/AppRTCDemo
  2. https://github.com/Piasy/AppRTC-Android

当我将url更改为我的自定义服务器而不是apprtc服务器时,1分钟后视频通话将被断开.我失去了与服务器的连接.

为避免服务器丢失连接,我们需要在约30秒内定期ping服务器.

但是上面提到的AppRTC项目正在使用jar文件(autobanh.jar)来连接websocket,但是在库中,sendPing mentod是私有的,因此无法访问.

问题1 -有没有办法ping websocket服务器.

替换websocet库之后尝试用下面提到的库更改了websocket库

  1. https://github.com/Koredotcom/android-kore-sdk/tree/master/BotsSDK/korebotsdklib/src/main/java/kore/botssdk/autobahn
  2. https://github.com/martindale/soundtrack.io-android/tree/master/src/de/tavendo/autobahn

在重新放置websocket库之后,现在我可以访问sendPing方法了.但是在视频通话过程中60秒后我的连接丢失了.

平方法 -

 public void sendPingMessageToServer() {
    try {
        WebSocketMessage.Ping ping = new WebSocketMessage.Ping();
//            ping.mPayload="ping to server".getBytes();
        mWebSocketWriter.sendPing(ping);

    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

在取消注释ping.mPayload行时,我得到BufferOverflowException.

定时器30秒

  private void startConnectionCheckTimer() {
    timerInstance.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            try {
               ws.sendPingMessageToServer();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }, 0, 30 * 1000);
}
Run Code Online (Sandbox Code Playgroud)

请建议60秒后如何避免断电.

android websocket apprtc

5
推荐指数
1
解决办法
284
查看次数