Me gustaría cambiar dinámicamente la fuente de video en una aplicación de transmisión de video. Sin embargo, las diferentes fuentes de video tienen dimensiones de imagen únicas. Puedo generar archivos SDP individuales para cada fuente de video, pero me gustaría combinarlos en un único archivo SDP para que el cliente de visualización pueda redimensionar automáticamente la ventana de visualización a medida que cambia la fuente de video. He aquí dos ejemplos de archivos SDP:Múltiples transmisiones de video H.264 en una sesión RTP
640x480.sdp:
v=0 o=VideoServerIN IP4 192.168.0.2 s=VideoStream640x480 t=0 0 c=IN IP4 192.168.0.2 m=video 8000/2 RTP/AVP 96 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=0; profile-level-id=4D4033; sprop-parameter-sets=Z01AM5ZkBQHtCAAAAwAIAAADAYR4wZU=,aO48gJ== a=control:trackID=1
960x480.sdp:
v=0 o=VideoServerIN IP4 192.168.0.2 s=VideoStream960x480 t=0 0 c=IN IP4 192.168.0.2 m=video 8000/2 RTP/AVP 96 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=0; profile-level-id=4D4033; sprop-parameter-sets=J01AM5WwPA9sBAIA,KO4G8gA= a=control:trackID=1
¿Cómo pueden estos archivos individuales pueden combinar en un solo archivo SDP?
También me deje caer los parámetros sprop-conjuntos y tenerlos en banda y sólo tienen una línea de medios de comunicación de vídeo. Todos los codificadores h264 los tendrán en banda de todos modos. Entonces tendría algún tipo de canal secundario si desea que el cliente controle el tamaño del video enviado y simplemente cambie de fuente al vuelo. El cliente puede simplemente "detectar" cuando la resolución ha cambiado y cambiar su tamaño de visualización. Esto funcionó bien para mí. El único problema es que debe actualizar los parámetros del SDP si su tamaño (tasa de bits) es mayor que el nivel de perfil especificado (poco probable en 5.1 que están usando). –