rtph261pay
Payload encoded H.261 video frames into RTP packets according to RFC 4587. For detailed information see: https://www.rfc-editor.org/rfc/rfc4587.txt
The payloader takes a H.261 frame, parses it and splits it into fragments on MB boundaries in order to match configured MTU size. For each fragment an RTP packet is constructed with an RTP packet header followed by the fragment. In addition the payloader will make sure the packetized H.261 stream appears as a continuous bit-stream after depacketization by shifting the encoded bit-stream of a frame to align with the last significant bit of the previous frame. This helps interoperability in the case where the encoder does not produce a continuous bit-stream but the decoder requires it.
Example launch line
gst-launch-1.0 videotestsrc ! avenc_h261 ! rtph261pay ! udpsink
This will encode a test video and payload it. Refer to the rtph261depay example to depayload and play the RTP stream.
Hierarchy
GObject ╰──GInitiallyUnowned ╰──GstObject ╰──GstElement ╰──GstRTPBasePayload ╰──rtph261pay
Factory details
Authors: – Stian Selnes
Classification: – Codec/Payloader/Network/RTP
Rank – secondary
Plugin – gstrtp
Package – GStreamer Good Plug-ins
Pad Templates
src
application/x-rtp:
media: video
payload: 31
clock-rate: 90000
encoding-name: H261
application/x-rtp:
media: video
payload: [ 96, 127 ]
clock-rate: 90000
encoding-name: H261
Properties
max-ptime
“max-ptime” gint64
Maximum duration of the packet data in ns (-1 = unlimited up to MTU)
Flags : Read / Write
Default value : 18446744073709551615
min-ptime
“min-ptime” gint64
Minimum duration of the packet data in ns (can't go above MTU)
Flags : Read / Write
Default value : 0
onvif-no-rate-control
“onvif-no-rate-control” gboolean
Enable ONVIF Rate-Control=no timestamping mode
Flags : Read / Write
Default value : false
perfect-rtptime
“perfect-rtptime” gboolean
Generate perfect RTP timestamps when possible
Flags : Read / Write
Default value : true
ptime-multiple
“ptime-multiple” gint64
Force buffers to be multiples of this duration in ns (0 disables)
Flags : Read / Write
Default value : 0
scale-rtptime
“scale-rtptime” gboolean
Whether the RTP timestamp should be scaled with the rate (speed)
Flags : Read / Write
Default value : true
seqnum
“seqnum” guint
The RTP sequence number of the last processed packet
Flags : Read
Default value : 0
seqnum-offset
“seqnum-offset” gint
Offset to add to all outgoing seqnum (-1 = random)
Flags : Read / Write
Default value : -1
source-info
“source-info” gboolean
Write CSRC based on buffer meta RTP source information
Flags : Read / Write
Default value : false
ssrc
“ssrc” guint
The SSRC of the packets (default == random)
Flags : Read / Write
Default value : -1
stats
“stats” GstStructure *
Various statistics
Flags : Read
Default value :
application/x-rtp-payload-stats, clock-rate=(uint)0, running-time=(guint64)18446744073709551615, seqnum=(uint)0, timestamp=(uint)0, ssrc=(uint)0, pt=(uint)31, seqnum-offset=(uint)0, timestamp-offset=(uint)0;
timestamp
“timestamp” guint
The RTP timestamp of the last processed packet
Flags : Read
Default value : 0
timestamp-offset
“timestamp-offset” guint
Offset to add to all outgoing timestamps (default = random)
Flags : Read / Write
Default value : -1
twcc-ext-id
“twcc-ext-id” guint
The RTP header-extension ID to use for tagging buffers with Transport-wide Congestion Control sequencenumbers (0 = disable)
Flags : Read / Write
Default value : 0
The results of the search are