Video sprop参数集或配置文件级别id是否是解码H264所需的SDP参数?

Video sprop参数集或配置文件级别id是否是解码H264所需的SDP参数?,video,sip,h.264,vlc,sdp,Video,Sip,H.264,Vlc,Sdp,我试图理解SDP中需要什么参数才能从RTP数据包中解码H264 这是一个相关的问题,因为这个问题的答案只适用于少数情况 示例 我使用以下命令从VLC进行流式传输 vlc -vvv sample_video/big_buck_bunny_480p_h264.mov --sout '#transcode{vcodec=h264,vb=700,fps=20,scale=0.25,acodec=none}:rtp{dst=10.5.110.117,port=5004,ttl=1}' 这会将视频转码到:

我试图理解SDP中需要什么参数才能从RTP数据包中解码H264

这是一个相关的问题,因为这个问题的答案只适用于少数情况

示例

我使用以下命令从VLC进行流式传输

vlc -vvv sample_video/big_buck_bunny_480p_h264.mov --sout '#transcode{vcodec=h264,vb=700,fps=20,scale=0.25,acodec=none}:rtp{dst=10.5.110.117,port=5004,ttl=1}'
这会将视频转码到:

  • 比特率:700kbps
  • 帧速率:每秒20
  • 分辨率:原始分辨率的25%
接收方使用以下SDP文件正确地接受和解释流(删除第一行,它只是一个名称)

要运行的命令:
vlc test.sdp

第7.2章中关于配置文件级别id的名为SIP视频配置文件最佳实践的可用文件规定:

配置文件级别id

虽然在RFC 6184中指定为可选(所有参数都是可选的),但 “profile level id”参数是编解码器设置的基础, 并且还需要指定任何其他参数。因此 所有实现都应在其SDP中包含此参数,并且 在收到时应进行解释。如果未包含,则默认为 根据RFC 6184的规定,该值为420010

同一文档说明了sprop参数集的以下内容:

sprop参数集

H.264允许在频带内发送序列和图片信息, 而且是带外的。SIP视频实现应该表明这一点 带内信息,符合H.323和 绝大多数现有SIP视频实现,以及 因此,不应包括此参数

问题1

即使删除了
profile level id
,接收机也能正确解读视频

//test.sdp
c=IN IP4 10.5.110.117
m=video 5004 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 sprop-parameter-sets=Z2QAFKzZQ0R+f/zBfMMAQAAAAwBAAAAKI8UKZYA=,aOvssiw=;
如果没有
sprop参数集
,它将无法运行

问题2

我一直在对不同的RTCP、SIP和SAP进行线切分,SDP通常不包含
sprop参数集

问题

  • 请解释这两个参数的含义和区别
  • 根据以上问题的答案,解释问题中出现的对比

含义和主要区别:

正如您在配置文件级别id的定义中所看到的,它有一个默认值,因此可以在信令协商中忽略它。此参数中包含的字符串用于通知解码器将用于发送数据的、约束和。此设置定义了几个参数,如比特率、分辨率、数据包类型

参数
sprop参数集
可以被视为解码要发送的数据的关键。它包含一些用于编码数据的字节,因此您可以与接收器共享这些字节,以便接收器能够解码视频数据包。它也可以从信令中省略,但它们对于解码器是必需的,因此它们也可以在频带内发送。因此,如果在sdp中省略它们,则需要在数据包中发送它们。接收器只能在收到此信息后对数据进行解码

问题1:

如前所述,
profile level id
可以省略,它仍然有效,因为将使用默认的
420010
。唯一的区别是设置不同,可能会影响视频质量。例如,默认情况下,42是指受约束的基线纵断面(CBP),而SDP中初始值中的64是指高纵断面(HiP)

sprop参数集
丢失时,视频不工作,可能是因为vlc不支持在频带内发送该数据,正如我上面解释的,这是强制性的

问题2:

许多SIP实现都支持在频带内发送
sprop参数集
,这就是您要捕获的。检查Wireshark中的h264数据包,您将在某些数据包中看到该值的描述

//test.sdp
c=IN IP4 10.5.110.117
m=video 5004 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 sprop-parameter-sets=Z2QAFKzZQ0R+f/zBfMMAQAAAAwBAAAAKI8UKZYA=,aOvssiw=;