VoIP之AVPF(Audio-Visual Profile with Feedback)

2024-02-28 13:04

本文主要是介绍VoIP之AVPF(Audio-Visual Profile with Feedback),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  在VoIP音视频通话中,接收者可以依赖rtcp机制向发送者报告RTP数据接收的统计情况,以便发送者根据接收情况(丢包数量等)调整传输行为(发送速率等)。由于基本的RTCP统计报告是定期发送的,通过该机制来调整发送端行为会有一定的滞后性,比如视频因丢包解码出现花屏时,急需新的I帧来刷新图像。为了解决以上问题,定义了AVPF机制,即RFC4585(RTP/AVPF):基于RTCP反馈的扩展机制,同时在RFC5104[Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVPF)]中进一步定义了相关的反馈消息。

一、传输层反馈消息(Transport Layer Feedback Messages)

使用RTCP包类型为205,子类消息有如下几种:
RFC4585中定义:
1: NACK(negative acknowledgement) 未确认,丢包请求
31:保留

RFC5104中定义:
2: 保留
3: Temporary Maximum Media Stream Bit Rate Request (TMMBR) 临时最大媒体流码率请求
4: Temporary Maximum Media Stream Bit Rate Notification (TMMBN) 临时最大媒体流码率通知

二、有效数据反馈消息(Payload-Specific Feedback Messages)

使用RTCP包类型为206,子类消息有如下几种:
RFC4585定义:
1: Picture Loss Indication (PLI) 图像丢失指示
2: Slice Lost Indication (SLI) 片丢失指示
3: Reference Picture Selection Indication (RPSI) 参考图像选择指示
15: Application layer FB message 应用层反馈消息
31: 保留

RFC5104定义:
4: Full Intra Request (FIR) Command 完整帧请求
5: Temporal-Spatial Trade-off Request (TSTR) 时空交换请求
6: Temporal-Spatial Trade-off Notifica 时空交换响应

三、关键说明

  • a=rtcp-fb用在媒体行层面,可能有多行
  • feedback消息简称FB
  • SDP中使用RTP/AVPF表明是支持扩展,也有使用RTP/AVP并依赖SDP中的属性表明支持FB功能的
  • 在视频会议中,通常使用FB(fir等)消息请求I帧
  • 如果SDP中有一个或多个a=rtcp-fb,需要忽略不认识的属性

这篇关于VoIP之AVPF(Audio-Visual Profile with Feedback)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/755581

相关文章

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

Apple quietly slips WebRTC audio, video into Safari's WebKit spec

转自:http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-into-safaris-webkit-spec/?from=timeline&isappinstalled=0 http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-

LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio

引言 模型概述 模型架构 训练方法 性能评估 实战演示 总结 引言 金山挂月窥禅径,沙鸟听经恋法门。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩,今天这篇小作文主要是介绍阿里巴巴的语音多模态大模型Qwen2-Audio。近日,阿里巴巴Qwen团队发布了最新的大规模音频-语言模型Qwen2-Audio及其技术报告。该模型在音频理解和多模态交互

Usb Audio Device Descriptor(10) Hid Device

对于 Standard Interface Descriptor, 当 bInterfaceClass=0x03时,即为HID设备。Standard Interface Descriptor如下 struct usb_standard_interface_descriptor{U8 bLength; /*Size of this descriptor in bytes*/U8 bDescrip

Android rk3399 UAC(USB Audio)开发笔记

一、UAC有1.0和2.0,因Windows对2.0支持不好,我使用的是UAC1.0驱动 内核配置:CONFIG_USB_CONFIGFS_F_UAC1          ---这个宏配置无需物理codec,使用虚拟 alsa codec  驱动路径:"kernel\drivers\usb\gadget\function\f_uac1.c" 内核配置:CONFIG_USB_CONFIGFS_

【Visual Studio 报错】未加载 wntdll.pdb(一种可行的解决办法)

调试程序时,会出现下面这个报错 分析原因: 出现未加载 wntdll.pdb 报错大概率是你的指针使用错误 ,比如使用野指针、越界访问、或者堆区空间释放方式错误等。 这里以 堆区空间释放方式错误 为例子 1、堆区开辟的数组空间使用 delete 释放 // 堆区开辟的数组空间使用 delete 释放int* p = new int[10];delete p; 正

查看Excel 中的 Visual Basic 代码,要先设置excel选项

1. excel VB的简单介绍 百度安全验证 2.excel选项设置 excel表格中在选项->自定义功能区域,选择开发工具,visual baisc/查看代码,即可看到代码。 3.excel已经设置,可以直接查看

[VC] Visual Studio中读写权限冲突

前置场景: 编译没有报错,但是运行提示 内存异常: 情景1: 如下代码运行异常,提示引发了异常:写入权限冲突。*** 是 0xFFFFF..... char* str = (char*)malloc(10);str[0] = 0x30;  解决方案:要包含头文件<stdlib.h>  情景2: 在FileA文件调用FileB文件的函数,但是在FileA中却没有声明该B函数的原型

解决Visual C++ 中相互包含头文件的问题

在编MFC应用程序时,经常会遇到头文件相互包含的问题,很是苦恼,于是便求助于强大的CSDN,得到如下答案:   方法一:利用友元类   我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:    #include "B.h"      class CA: public CDialog

如何简单而优雅地升级Visual NMP中的PHP版本

需求:自己想测试下不同版本的PHP性能,就想升级下 Visual 这个集成环境中PHP的版本 网上: 升级PHP到5.6.11  1、下载新的nts版的PHP并解压缩到bin\PHP下,保留原文件夹的名称; 2、将旧版PHP文件夹下的PHP.ini复制到新版的PHP文件夹下;修改复制的PHP.ini,将旧版PHP文件夹信息替换成新版PHP文件夹信息; 3、下载php_xdebug-2.3