流视频时如何模拟网络丢包?

How to simulate network packet loss when streaming video?

请帮我解决这个棘手的问题,让我痛苦了将近一个星期。

如何让流媒体视频丢包?

交换机:Pica8 3290 电脑:酷睿i7 2600、8GB Link:100Mps 流媒体视频 : RTP (1080P、4K)

我已经尝试过 "iperf"、"iperf3" 和 "Packeth" 生成 UDP 数据包。不过,这3个软件好像都是先测量link的剩余容量,然后发送符合容量的数据包数量。

例如:

(无视频流)iperf 发送几乎 100Mps

(带视频流)iperf 仅发送近 70Mbps

因此,这些数据包生成器不会帮助我使流媒体视频遭受严重损失。 (我想要的是做大流量,让流媒体遭受可怕的损失和延迟)

那么,如何创建 "congestion" 并使视频流数据包丢失?

非常感谢您的帮助!!

最近 Facebook 发布了一个名为 ATC(模拟网络条件的工具)的很有前途的工具。

它允许您控制网络中的带宽、延迟、数据包丢失和数据包损坏率。

但是该工具仅支持 Linux 平台和 Python 2.7.

您可以找到有关 ATC 的一般信息 here. ATCs github repo is here

在 Linux 中有一个特殊的实用程序 netem,它提供了您在 Linux 内核层上寻找的开箱即用的所有功能。

对于 Windows 平台,您可以使用 Network Emulator Toolkit