[FFmpeg-devel] [PATCH v2 2/2] avformat/rtsp: Send mode=record instead of mode=receive in Transport header
Michael Niedermayer
michael at niedermayer.cc
Tue Jan 16 02:20:56 EET 2024
On Mon, Jan 15, 2024 at 10:37:25PM +0200, Paul Orlyk wrote:
> Fixes server compatibility issues with rtspclientsink GStreamer plugin.
>
> > From specification:
> RFC 7826 "Real-Time Streaming Protocol Version 2.0" (https://datatracker.ietf.org/doc/html/rfc7826), section 18.54:
> mode: The mode parameter indicates the methods to be supported for
> this session. The currently defined valid value is "PLAY". If
> not provided, the default is "PLAY". The "RECORD" value was
> defined in RFC 2326; in this specification, it is unspecified
> but reserved. RECORD and other values may be specified in the
> future.
> RFC 2326 "Real Time Streaming Protocol (RTSP)" (https://datatracker.ietf.org/doc/html/rfc2326), section 12.39:
> mode:
> The mode parameter indicates the methods to be supported for
> this session. Valid values are PLAY and RECORD. If not
> provided, the default is PLAY.
>
> mode=receive was always like this, from the initial commit 'a8ad6ffa rtsp: Add listen mode'.
>
> For comparison, Wowza was used to push RTSP stream to. Both GStreamer and FFmpeg had no issues.
> Here is the capture of Wowza responding to SETUP request:
> 200 OK
> CSeq: 3
> Server: Wowza Streaming Engine 4.8.26+4 build20231212155517
> Cache-Control: no-cache
> Expires: Mon, 15 Jan 2024 19:40:31 GMT
> Transport: RTP/AVP/UDP;unicast;client_port=11640-11641;mode=record;source=172.17.0.2;server_port=6976-6977
> Date: Mon, 15 Jan 2024 19:40:31 GMT
> Session: 1401457689;timeout=60
>
> Test setup:
> Server: ffmpeg -loglevel trace -y -rtsp_flags listen -i rtsp://0.0.0.0:30800/live.stream t.mp4
> FFmpeg client: ffmpeg -re -i "Big Buck Bunny - FULL HD 30FPS.mp4" -c:v libx264 -f rtsp rtsp://127.0.0.1:30800/live.stream
> GStreamer client: gst-launch-1.0 videotestsrc is-live=true pattern=smpte ! queue ! videorate ! videoscale ! video/x-raw,width=640,height=360,framerate=60/1 ! timeoverlay font-desc="Sans, 84" halignment=center valignment=center ! queue ! videoconvert ! tee name=t t. ! x264enc bitrate=9000 pass=cbr speed-preset=ultrafast byte-stream=false key-int-max=15 threads=1 ! video/x-h264,profile=baseline ! queue ! rsink. audiotestsrc ! voaacenc ! queue ! rsink. t. ! queue ! autovideosink rtspclientsink name=rsink location=rtsp://localhost:30800/live.stream
>
> Test results:
> modified FFmpeg client -> stock server : ok
> stock FFmpeg client -> modified server : ok
> modified FFmpeg client -> modified server : ok
> GStreamer client -> modified server : ok
>
> Signed-off-by: Paul Orlyk <paul.orlyk at gmail.com>
> ---
> libavformat/rtspdec.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
Thats a nice commit message
will apply
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Whats the most studid thing your enemy could do ? Blow himself up
Whats the most studid thing you could do ? Give up your rights and
freedom because your enemy blew himself up.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240116/b6b98546/attachment.sig>
More information about the ffmpeg-devel
mailing list