Gstreamer: pausar / reanudar video en transmisiones RTP

Estoy construyendo una tubería gstreamer que recibe dos transmisiones RTP de una fuente en red:

Flujo de audio ILBC + flujo RTCP correspondienteTransmisión de video H263 + transmisión RTCP correspondiente

Todo se coloca en una tubería de gstreamer, por lo que utilizará el RTCP de ambas transmisiones para sincronizar audio / video. Hasta ahora se me ocurrió esto (usando gst-launch para la creación de prototipos):

gst-launch -vvv  gstrtpbin name=rtpbin
  udpsrc caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-2000" port=40000 ! rtpbin.recv_rtp_sink_0
  rtpbin. ! rtph263pdepay ! ffdec_h263 ! xvimagesink
  udpsrc port=40001 ! rtpbin.recv_rtcp_sink_0
  rtpbin.send_rtcp_src_0 ! udpsink port=40002 sync=false async=false

  udpsrc caps="application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMU,encoding-params=(string)1,octet-align=(string)1" port=60000 rtpbin.recv_rtp_sink_1
  rtpbin. ! rtppcmudepay ! autoaudiosink
  udpsrc port=60001 ! rtpbin.recv_rtcp_sink_1 
  rtpbin.send_rtcp_src_1 ! udpsink port=60002 sync=false async=false

Esta canalización funciona bien si la fuente en red comienza enviando video y audio. Si la fuente de video se detiene más adelante, gstreamer seguirá reproduciendo audio e incluso comenzará a reproducir el video cuando la fuente en red reanude la transmisión de video.

Sin embargo, mi problema es que si la fuente en red comienza solo con una transmisión de audio (el video podría agregarse más adelante), la tubería parece pausar / congelarse hasta que la transmisión de video también comience.

Dado que el video es opcional (y el usuario puede agregarlo / eliminarlo a voluntad) en mi aplicación, ¿hay alguna manera de que pueda conectar, por ejemplo, un 'videotestsrc' que proporcionará algún tipo de datos de video alternativos para mantener la tubería en funcionamiento cuando no hay datos de video en red?

He intentado experimentar con 'videotestsrc' y una cosa llamada 'videomixer', pero creo que el mezclador todavía requiere que ambas transmisiones estén vivas. Cualquier comentario es muy apreciado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta