Я хочу получить поток RTP, содержащий VP8, используя gstreamer. Работает следующий конвейер:
gst-launch-1.0 -v rtpbin name=rtpbin name=rtpbin udpsrc name=udpsrcm caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)VP8-DRAFT-IETF-01" port=0 ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtpvp8depay ! webmmux ! filesink location='rec.webm'
Но порт жестко запрограммирован (5004). Теперь я бы хотел, чтобы udpsrc автоматически выделил свободный порт, который я мог бы затем прочитать. Это возможно в соответствии с документацией udpsrc :
Элемент udpsrc поддерживает автоматическое распределение портов, установив для свойства порта значение 0. После установки для udpsrc значения PAUSED выделенный порт можетполучить путем чтения свойства порта.
Я также попробовал это, и udpsrc правильно распределяет и прослушивает свободный порт, но я понятия не имею, как я мог его прочитать. Я не нашел примеров того, как это сделать.
Я буду использовать порт в том же файле сценария, чтобы указать другому приложению выполнять потоковую передачу на этот порт.