viernes, 4 de febrero de 2011

4.2.1 Encapsulado especial meta-data Darwin Streaming Server (DSS).

Una de las opciones para diferenciar el tipo de imagen que trasporta
el paquete RTP implementada por el DSS, es la negociación de
meta información transportada en el payload de cada paquete RTP.
Consultando la documentación observamos que el DSS puede
transportar los siguientes campos opcionales.

  • Tiempo de transmisión, etiquetado como “Transmission Time” o “tt”.
  • Tipo de Frame, etiquetado como “Frame Type” o “ft”.
  • Numero de paquete, etiquetado como “Packet Number” o
“pn”
  • Posición de paquete, etiquetado como “Packet Position” o
 “pp”
  • Datos del medio, etiquetado como “Media Data” o “md”
  • Número de secuencia, etiquetado como “Sequence Number”
 o “sn”

Los campos opcionales anteriores son enviados por el servidor de
vídeo en respuesta a una petición realizada por el cliente de
streaming, donde se ha especificado los campos deseados
mediante la etiqueta x-RTP-Meta-Info. Este proceso es realizado
mediante un mensaje tipo “Setup” en la negociación RTSP, mediante
una entrada con un formato similar al siguiente.

x-RTP-Meta-Info: tt;ti;pn

A continuación, y siguiendo el proceso normal, el servidor responde
la petición donde se indica la disponibilidad de las características
solicitadas. Para realizar dicha respuesta se utiliza el formato
posterior:

x-RTP-Meta-Info: tt=0;ft;pn=1

La respuesta es interpretada por el cliente, donde ha podido
reconocer las siguientes directrices:

  • El campo tt , “Transmission Time”, es enviado comprimido
con id de campo igual a 0.
  • El campo ft, “Frame Type”, es enviado sin comprimir.
  • El campo pn, “Packet Number”, será enviado comprimido con
identificador de campo igual a 1.

La diferencia de los campos comprimidos reside en la utilización de
Un identificador de 7 bits para identificar el tipo de campo, evitando
el uso de identificadores en texto plano. Para distinguir si una
entrada esta comprimida se verifica el primer bit de la misma entrada
de meta información. Un ‘0’ indica que el campo no está comprimido
a diferencia de un valor de ‘1’ que indica que el campo esta en
formato comprimido.

En ambos formatos se especifica la longitud de los datos
acompañados de la información correspondiente. A continuación se
presenta gráficamente el formato anteriormente explicado.


Fig. 4.9 Transporte de meta-data en el paquete RTP en formato
descomprimido.

Fijando como objetivo diferenciar el tipo de frame que viaja en el
payload de RTP nos centramos en el campo “Frame Type” el cual
puede coger los siguientes valores, con lo que permite diferenciar los
frames de forma sencilla:

  • 0 representa un frame desconocido.
  • 1 representa un key frame o frame tipo I.
  • 2 representa un frame tipo B
  • 3 representa un frame tipo P.

Destacar finalmente que este tipo de solución únicamente funciona
si el cliente negocia con el servidor las opciones mencionadas, por lo
que se ha optado por una solución más transparente para poder
diferenciar el contenido transportado por los paquetes RTP.

No hay comentarios:

Publicar un comentario