I am using GStreamer on Windows, and want to start a local stream of my webcam with RTP PT 33. The command is:
gst-launch-1.0 -v mfvideosrc device-path="PATH TO DEVICE" ! video/x-raw,format=NV12,width=640,height=480,framerate=30/1 ! videoconvert ! x264enc tune=zerolatency ! rtph264pay pt=33 ! udpsink host=localhost port=1234
But no matter what I do, the output always says that the payload is 96
and not the expected 33
.
Does anyone have any idea what I am doing wrong or what I should change?
The documentation for gst-launch explains the unusual syntax for the options on the command line.
pt=33
is not the correct way of setting the payload, instead try downstream caps:
gst-launch-1.0 -v mfvideosrc device-path="PATH TO DEVICE" ! video/x-raw,format=NV12,width=640,height=480,framerate=30/1 ! videoconvert ! x264enc tune=zerolatency ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=123 ! udpsink host=localhost port=1234
Here I set the payload to 123
, not 33 as you wanted in your question.
If you check rtph264pay documentation, payload range is set to [96, 127] (See the src pad definition), so any attempts to set values out of this range might be simply ignored by rtph264pay
.