- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要检查设备是否可以支持特定质量级别的 voip 通话。我的方法(我承认可能有更好的方法)是在用户的 iOS 设备上进行互联网连接速度测试,然后立即调用电话。速度测试应尽可能准确地确定即将到来的 VoIP 通话质量是好是坏。
voip 通话包括实时视频(类似于 Skype)。
我知道以下测量连接速度的技术:
下载或上传文件并测量所需时间。
概述here .测量下载或上传速度能否准确了解即时通话的 VoIP 通话质量?此外,文件可能会被缓存,甚至速度可能会受到 ISP 的限制。
使用 ICMP 数据包(即 ping)可靠的服务器(例如 google.com)。
这种方法的一个潜在问题是(我听说)一些路由器被配置为给予 ICMP 数据包比其他路由器低的优先级。因此,它们不能用作带宽/速度/可达性等的准确度量。是这样吗?
测量网络连接速度是预测 VoIP 通话质量的有效方法吗?如果是这样,为此目的测量互联网连接速度的有效且快速(即少于 3 秒)的方法是什么?
最佳答案
VoIP 调用的实际数据是通过 RTP 传送的,它实际上只需要 24-64Kbps(取决于编解码器)并且需要 UDP 地址进行单向传输。偶尔会发送 RTCP 数据包来报告状态、指标等,但并不是真正需要的。
SIP 用于调用建立和断开。
RTCP 数据包携带(最小)调用质量指标。
有几个参数会影响通话质量,包括编解码器的选择、可用带宽、网络延迟、数据包丢失(RTP 在 UDP 之上,因此不会重传)和抖动(数据包间到达延迟、无序交付)。
(Cicso) 交换机实现 RED,这是一种通过随机丢弃网络数据包来减少队列深度的技术。对于 TCP 网络连接,这是可以接受的,因为 TCP 通过滑动窗口协议(protocol)进行重传。许多基于 UDP 的协议(protocol)实现了应用重传。但 RTP 负担不起这种奢侈。因此随机丢弃语音数据包会损害连接质量。 RED 的一种解决方案是通过 TCP 连接隧道传输 VoIP,但这不是我们做出的选择。
拥塞的网络是 VoIP 通话质量问题的一个重要来源,可以在通话的最初几秒内测量到这一点。由于抖动和延迟数据包(高网络延迟)导致的数据包丢失是通话质量下降的两个主要原因。我在 VoIP 服务质量监控系统上工作,我们观察到最糟糕的调用具有高抖动和高延迟(超过 ~70 毫秒是不好的)。避免高延迟、拥塞的网络。编码的选择会对质量产生巨大影响。与“效率”较低的编解码器相比,更高压缩率的编解码器因数据包丢失而损失更多,因此请选择使用更高带宽的编解码器(祝你好运)。
IP 网络需要 QoS 保证来提供最佳的 VoIP 质量。在重新定义 TCPIP 以包括 QoS 之前,VoIP 将存在(潜在的)问题。
您的方法很接近。但是你想测量:
您需要为您的数据包添加时间戳和编号,并检测高延迟、到达间隔抖动,避免通过 TCP 进行测量(数据包重传会扭曲您的质量数字,并且 TCP 会重新排序数据包,即使它会引入延迟)。您还想知道两者的质量。您可能会发现编解码器选择是改善通话的一个重要因素。
我工作的制造显示器的公司 (Telchemy) 将他们的 VQMon 软件授权为一种产品来衡量质量,因此您想要的工具已经存在。
关于iphone - 如何在开始之前确定 voip 通话的质量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16053516/
我使用透视滤镜在视频上放了一张图片。 示例 https://yadi.sk/i/MXtWUArJ3TyWBm 我怎样才能提高质量? 代码 ffmpeg -y -i bg.mp4 -loop 1 -i
我是 Matlab 的新手,虽然我知道一些其他的编程语言,所以如果这很简单,请原谅我。我无法在 StackOverflow 或其他地方找到任何答案。 我使用以下代码生成一个图形: figure(6)
我是 Matlab 的新手,虽然我知道一些其他的编程语言,所以如果这很简单,请原谅我。我无法在 StackOverflow 或其他地方找到任何答案。 我使用以下代码生成一个图形: figure(6)
在包含另一个类时,我总是需要写#include "headername.h"。是否可以在不编写其他类或使用“#include”包含多个类的情况下访问其他类? 最佳答案 什么 #include指令的作用
我有一个 .webm我想加速以延时拍摄的视频。我的原创.webm视频是 1280x720 并且质量非常好,但是当我用 FFMPEG 加速它时质量真的很差(即使分辨率保持不变)。这是我正在使用的命令:
我正在使用以下命令生成缩略图: mogrify -resize 128x128 -quality 75 "some thumb file" 对于示例文件: 如果我不指定质量 75,我会得到一个 40K
我想使用流体库的模型。谁能解释一下(我是建模/模拟的新手):质量/能量/动量平衡的公式:稳态、动态和初始猜测初始固定-->之间有什么区别以及对初始化时间/计算的影响是什么时间;我什么时候需要哪一个。
我通过解析“fmt 流映射”得到流 URL, 问题是如果我的视频时长不到 1 小时,我会得到这个: { "comment_count" = 1; description = ""; "dislikes
我试图根据用户的屏幕高度分辨率显示不同的视频分辨率,我有这段代码,但我不是 javascript 专家。它应该改变 src 属性,如果 res 低于 o 等于 360px 高度,等等。有什么建议吗?
我有播放 HLS 视频的 ExoPlayer,问题是我需要让用户能够更改视频质量(自动/1080/720/480)。 我发现使用 AdaptiveTrackSelection.Factory 确实可以
我的应用程序使用 phpmyadmin 连接到 mysql 中的数据库并将图像存储在数据库中,但我的问题是当我从数据库下载图像并将图像发布到 imageview 上时,图像的质量非常低颜色也受到影响。
大家好,我一直在使用 JavaFx 场景构建器来构建一个包含一些 png 图片的图形用户界面。 到目前为止,我一直在使用标签,然后将它们放大以适合图片(以便图片可见。但是这个解决方案并不令人满意,因为
我注意到,在显示比例为 1:1 的小图片时,它们通常看起来呈 block 状。我可以在使用 时解决问题通过使用更大比例的图像并使用 css 设置所需的大小来标记。 但是,我想用 background
我是自定义 CSS 的新手。我的老板希望我在 Qualtrics 中添加自定义 CSS(在外观/高级下)。在编辑预览窗口中,一切似乎都格式正确,但在实际调查页面上,许多元素的格式并未应用:图像是原始大
所以我尝试使用 CreateFont 尝试创建一种类似于我在 Photoshop 中使用的字体,但如果你仔细观察,Photoshop 中的质量要好得多。 这是我用来创建字体的代码: CreateFon
在自动去歪斜和裁剪之后我得到了下面的图像: 我需要对这张图片进行 OCR。现在 ABBYY Engine SDK 11 For Linux 产生的结果不是很好: IMerasers - www,rai
我目前在我的项目中使用 xorshift128+,我知道它通过了 Big Crush,并且被认为可以根据其速度生成相当高质量的随机数。但是,它会生成 64 位数字,而我需要的绝大多数随机数都是小整数(
我使用 python 以较小的质量保存 jpeg im = Image.open(file) im.save(cached_file, quality=80, optimize=True, progr
我在保存或使用 Gmagick PHP 扩展时找不到任何属性。 http://php.net/manual/en/book.gmagick.php 如何在 Gmagick 中更改 JPEG 质量? 最
youtube视频通常具有多种视频分辨率(质量),例如240p,360p,720p等,我如何检索youtube视频具有的视频分辨率(质量)是否有可以获取此信息的youtube api?Google.A
我是一名优秀的程序员,十分优秀!