Python 如何在接收器处准确测量视频流吞吐量?

Python 如何在接收器处准确测量视频流吞吐量?,python,video,streaming,client-server,Python,Video,Streaming,Client Server,我已经用python开发了一个视频流服务器-->客户端应用程序。 我一直试图通过以下方式测量接收器(客户端)的吞吐量(kb/s): 然而,这种方法有时会为2X或3X分配带宽(使用tc&netem工具),特别是对于移动网络中的可变带宽!。特别是,当带宽从一个值更改为另一个值时,测得的吞吐量将增加一倍或三倍 我尝试过的代码: frtpPacket,datasize = self.rcvrSock.receiveFRTPpacket() frame_start_ts = time.ti

我已经用python开发了一个视频流
服务器-->客户端
应用程序。
我一直试图通过以下方式测量接收器(客户端)的吞吐量(kb/s)

然而,这种方法有时会为
2X
3X
分配带宽(使用
tc
&
netem
工具),特别是对于移动网络中的可变带宽!。特别是,当带宽从一个值更改为另一个值时,测得的吞吐量将增加一倍或三倍

我尝试过的代码:

    frtpPacket,datasize = self.rcvrSock.receiveFRTPpacket()
    frame_start_ts = time.time()
    while prev_frame_no == frtpPacket.frame_no:
        byteReceived = byteReceived + datasize
        # measure packet receiving time
        packet_delay_start =  time.time()
        frtpPacket,datasize = self.rcvrSock.receiveFRTPpacket()
        packetdelay = time.time() - packet_delay_start #in seconds

    accFrame_delay = accFrame_delay + time.time() - frame_start_ts - packetdelay
    if time.time() - start > 1:
        start = time.time()
        byteReceived_in_bits = (byteReceived/accFrame_delay) * 8 # convert to bps
        byteReceived = 0
        accFrame_delay = 0
其中,
rcvrSock
是在类构造函数中初始化的套接字,用于接收帧的数据包。基本上,累积帧延迟和接收字节,然后每1秒计算吞吐量
(帧字节/帧时间)

您有更好的方法来应对可变带宽吗


有任何参考或建议吗?

您尝试了什么?给我们看看你的代码!我更新了问题,请看一看!
    frtpPacket,datasize = self.rcvrSock.receiveFRTPpacket()
    frame_start_ts = time.time()
    while prev_frame_no == frtpPacket.frame_no:
        byteReceived = byteReceived + datasize
        # measure packet receiving time
        packet_delay_start =  time.time()
        frtpPacket,datasize = self.rcvrSock.receiveFRTPpacket()
        packetdelay = time.time() - packet_delay_start #in seconds

    accFrame_delay = accFrame_delay + time.time() - frame_start_ts - packetdelay
    if time.time() - start > 1:
        start = time.time()
        byteReceived_in_bits = (byteReceived/accFrame_delay) * 8 # convert to bps
        byteReceived = 0
        accFrame_delay = 0