El rfc y el significado de los campos relacionados con sdp

1.un campo

1.1 propiedades criptográficas

a = criptografía : <etiqueta> <crypto-suite> <key-params> [<session-params>]

a = cripto: 1 AES_CM_128_HMAC_SHA1_80 en línea: d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj | 2 ^ 20 | 1:32

Etiqueta: se utiliza para seleccionar un atributo criptográfico en oferta / respuesta

Conjunto de cifrado: describe el identificador cifrado y el algoritmo de autenticación.

Parámetros clave: método: información. Actualmente solo hay una definición de método "en línea", lo que indica que la clave secreta es info.

Parámetros de sesión:

Referencia de: https://tools.ietf.org/html/rfc4568#section-4

1.2 atributo ssrc

a = ssrc : <ssrc-id> <attribute> : <value>

a = ssrc: 2 cname: stream_1_cname

a = ssrc: 2 etiqueta: video_track_id_1

El atributo incluye: cname (identifica de forma única a un cliente, un cliente solo tiene un cname)

msid

mslabel

etiqueta

fmtp

Referencia de: https://tools.ietf.org/html/rfc5576#section-4

Observaciones: atributo de etiqueta, puede consultar: https://www.packetizer.com/rfc/rfc4574/

1.3 atributos del grupo ssrc

a = ssrc-group: <semantics> <ssrc-id> ...

a = grupo ssrc: FEC 2 3

semántica: FID (identificación de flujo), FEC (corrección de errores hacia adelante), SIM (utilizado para simulcar).

FID: Significa que solo se puede usar un códec al mismo tiempo. Tenga en cuenta que un FID no debe usar el mismo puerto / ip. Escenario de implementación de FID: se puede utilizar para implementar el mecanismo de retransmisión

ssrc-id: hay varios, lo que significa que todos los ssrc en un grupo

Referencia de: https://tools.ietf.org/html/rfc5576#section-4

Observaciones: Documentación sobre rtx https://tools.ietf.org/html/rfc4588

1.4 atributos de rtpmap

a = rtpmap: <tipo de carga útil> <nombre de codificación> / <frecuencia de reloj> [/ < 
         parámetros de codificación >]

a = rtpmap: 120 VP8 / 90000

tipo de carga útil: tipo de carga útil

nombre de codificación: codificador

parámetros de codificación: si es audio, puede indicar el número de canales

(Nota: Hay dos tipos de cargas útiles, ulpfec y flexfec. El documento de referencia es:

ulpfec: https://tools.ietf.org/html/rfc5109

flexfec :https://tools.ietf.org/html/draft-ietf-payload-flexible-fec-scheme-05

Referencia de: https://tools.ietf.org/html/rfc4566

1.5 propiedad MediaContentDirection

a = sendrecv 
a = recvonly 
a = sendonly 
a = inactive

Referencia de: https://tools.ietf.org/html/rfc4566

1.6 atributos ice-ufrag y ice-pwd

a = hielo-ufrag: <ufrag> 
a = hielo-pwd: <pwd>

a = hielo-ufrag: ufrag_video

a = hielo-pwd: pwd_video

El nombre de usuario y la contraseña del agujero de hielo.

a = hielo-ufrag: ufrag_video

a = hielo-pwd: pwd_video

Referencia de: https://tools.ietf.org/html/rfc5245#section-15.4

1.7 atributos candidatos

a = candidato <fundación> <id. de componente> <transporte> <prioridad> <dirección de conexión> tip <tipos de candidatos> <dirección-rel> <puerto-rel>

a = candidato: a0 + B / 4 1 udp 2130706432 74.125.224.39 3457 tipo relé generación 2

fundación: se utiliza para distinguir si dos candidatos son del mismo tipo, la misma dirección base y el mismo servidor de aturdimiento

ID de componente: comience desde 1 y aumente. RTP debe ser 1, RTCP debe ser 2

prioridad: prioridad, no sé cómo usarlo

cand-type: Hay cuatro tipos de "host", "srflx", "prflx" y "relé". srflx significa servidor reflexivo, prflx significa peer reflexivo y retransmisor significa candidatos retransmitidos. Debe haber cuatro métodos de conexión.

rel-addr: La comprensión actual es la dirección del servidor de aturdimiento o turno.

puerto rel:

Referencia de: https://tools.ietf.org/html/rfc5245

1.8 atributos rtcp

a = rtcp: <puerto> <tipo de red> <tipo de dirección> <dirección de conexión>

a = rtcp: 2347 EN IP4 74.125.127.126

información de atributo rtcp

Referencia de: https://tools.ietf.org/id/draft-ietf-mmusic-sdp4nat-00.txt

1.9 atributo semántico msid

a = msid-semantic: <msid>

a = msid-semántica: WMS local_stream_1

WMS Display Webrtc Media Streams

local_stream_1 significa msid (el rol específico de msid debe corresponder a ssrc)

Referencia de: https://tools.ietf.org/html/draft-alvestrand-rtcweb-msid-02#section-3

1.10 atributo msid

a = msid: <msid>

a = msid: local_stream_1

El valor del atributo "msid" consta de un identificador y un campo "appdata" opcional (el atributo msid consta de un identificador y appdata).

Este nuevo atributo permite a los puntos finales asociar flujos RTP que se describen en diferentes descripciones de medios con los mismos MediaStreams (el atributo msid permite que los puntos finales y las conexiones de flujo RTP utilicen los mismos MediaStreams en diferentes descripciones de medios)

y llevar un identificador para cada MediaStreamTrack en su campo "appdata" (appdata 放置 MediaStreamTrack)

Referencia de: https://tools.ietf.org/html/draft-ietf-mmusic-msid-16#page-10

Nota: El segundo parámetro de la función SdpSerialize en webrtc debe establecerse en verdadero para tener este atributo. Si usa la función toString de jsep directamente, no habrá tal atributo

1.11 atributos de grupo

a = grupo: <semantics> <semantics-extension>

a = grupo: BUNDLE

Las líneas "A = grupo" se utilizan para agrupar varias líneas "m" que se identifican por su atributo "medio" (el atributo de grupo se utiliza para conectar varios atributos m mediante el identificador medio)

PUEDE haber varias líneas "a = grupo" en una descripción de sesión. Las líneas "a = grupo" de una descripción de sesión pueden usar la misma semántica o diferente (los atributos de grupo pueden tener múltiples y pueden tener la misma o diferente semántica)

Referencia de:

https://tools.ietf.org/html/rfc5888

https://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-39

1.12 atributo de solo paquete

a = solo paquete

a = solo paquete

Se utiliza junto con el atributo de grupo. Indica que diferentes medios usan el mismo puerto

1.13 atributos rtcp-fb

a = rtcp-fb: <payload> <param>

a = rtcp-fb: abeto de 96 cc

Referencia de: https://tools.ietf.org/html/rfc4585

1.14 atributo rtcp-rsize

a = rtcp-rsize

a = rtcp-rsize

Referencia de: https://tools.ietf.org/html/rfc5506

1.15 atributo de huella digital

a = huella digital: <hash-func> <huella digital>

a = huella digital: SHA-1 4A: AD: B9: B1: 3F: 82: 18: 3B: 54: 02: 12: DF: 3E: 5D: 49: 6B: 19: E5: 7C: AB

Referencia de: https://tools.ietf.org/html/rfc4572#page-7

1.16 atributos de extmap

a = extmap: <id> <uri>

a = extmap: 8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing

La extensión de la cabeza de rtp. Tiene tres atributos:

1. Asimétrico (recvonly, sendonly se puede expresar)

2. Puede haber opciones mutuamente excluyentes (la respuesta puede elegir la oferta para proporcionar una de las extensiones rtpextension con la misma identificación, la identificación debe ser 4096 ~ 4351)

3. Se pueden representar varias extensiones de encabezado en una sesión.

Referencia de: https://tools.ietf.org/html/rfc5285

1.17 atributos fmtp

a = fmtp: <payload> <param>

a = fmtp: 97 apto = 96

Indica el tipo de carga útil correspondiente al códec y parámetro.

Referencia de: https://tools.ietf.org/html/rfc4566

1.18 atributo medio

a = mid: <nombre del medio>

a = mid: audio

Representa el nombre del medio, utilizado para encontrar medios específicos.

1.19 propiedades de configuración

a = configuración: <función>

a = configuración: activa

Indica el rol en la conexión, si es una conexión activa o una conexión pasiva, etc.

2 v campo

v = 0

Referencia de: https://tools.ietf.org/html/rfc4566

3 o campo

o = (nombre de usuario) (ID de sesión) (versión) (tipo de red) (tipo de dirección) (dirección)

o = - 18446744069414584320 18446462598732840960 EN IP4 127.0.0.1

Referencia de: https://tools.ietf.org/html/rfc4566

Campo de 4 s

s = (nombre de la sesión)

Referencia de: https://tools.ietf.org/html/rfc4566

Campo de 5 m

m = (medios) (puerto) (capa de transporte) (lista de formatos)

m = audio 2345 RTP / SAVPF 111103104

Referencia de: https://tools.ietf.org/html/rfc4566

6 b campo

Velocidad de transmision

Referencia de: https://tools.ietf.org/html/rfc4566

oferta / respuesta:

Para oferta / respuesta, puede ver:

https://tools.ietf.org/html/rfc3264#page-8

Nota:

1. La respuesta DEBE contener exactamente el mismo número de líneas "m =" que la oferta (el número de m atributos debe ser el mismo que el número de m atributos de la oferta)

2. Si el respondedor no tiene formatos de medios en común para un flujo ofrecido en particular, el respondedor DEBE rechazar ese flujo de medios estableciendo el puerto en cero. (Si el respondedor no tiene formatos de medios como oferta, entonces configure el puerto en 0 Rechazar este flujo de medios)

3. Rechazo de respuesta: si desea rechazar una transmisión de medios, debe establecer el puerto de los medios rechazados en 0, pero hay una situación a la que prestar atención, es decir, a = solo paquete y a = grupo : Campo BUNDLE al frente, lo que significa que varios flujos de medios comparten un puerto. En este momento, los medios se pueden establecer en 0

CreateAnswer comparar códec

1. Para audio y video, compararán si los nombres de los dos son consistentes. Si la carga útil es menor o igual a 95, también comparará si la identificación es consistente (porque los menores o iguales a 95 son estáticos cargas útiles)

2. Para el audio, la velocidad de reloj, la velocidad de bits y los canales de los dos deben ser iguales, o uno de ellos debe ser 0.

3. Para el video, si es H264, comparará si el ID de nivel de perfil es consistente

Supongo que te gusta

Origin blog.csdn.net/gredn/article/details/109630157
Recomendado
Clasificación