CURLOPT_RTSP_STREAM_URI(3)

πŸ’– CURLOPT_RTSP_STREAM_URI(3) πŸ’–

✨ NAME ✨

CURLOPT_RTSP_STREAM_URI β€” RTSP stream URI. bestie, this page is straight from the Library Functions Manual, and it's giving very specific "which stream are we even talking about" energy πŸ¦‹

🌈 SYNOPSIS 🌈

okay so you include the header and call the setopt function like this:

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RTSP_STREAM_URI, char *URI);

πŸ’… DESCRIPTION πŸ’…

okay so you set the stream URI you want to operate on by passing a char *. For example, a single session may be controlling rtsp://foo/twister/audio and rtsp://foo/twister/video, and the application can switch to the appropriate stream using this option. If it's unset, libcurl defaults to operating on generic server options by passing '*' in the place of the RTSP Stream URI.

This option is distinct from CURLOPT_URL(3), periodt. When working with RTSP, the CURLOPT_RTSP_STREAM_URI(3) indicates what URL to send to the server in the request header while the CURLOPT_URL(3) indicates where to make the connection to. (e.g. the CURLOPT_URL(3) for the above examples might be set to rtsp://foo/twister

The application does not have to keep the string around after setting this option.

Using this option multiple times makes the last set string override the previous ones. Set it to NULL to disable its use again.

πŸ“ DEFAULT πŸ“

the default is literally this:

"*"

πŸ¦‹ PROTOCOLS πŸ¦‹

This functionality affects rtsp only. no cap πŸ’€

✨ EXAMPLE ✨

okay here's the main character demo:

int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode result;
    curl_easy_setopt(curl, CURLOPT_URL, "rtsp://example.com/");
    curl_easy_setopt(curl, CURLOPT_RTSP_STREAM_URI,
                     "rtsp://foo.example.com/twister/video");
    result = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
  }
}

🌸 AVAILABILITY 🌸

Added in curl 7.20.0 🫢

πŸ’– RETURN VALUE πŸ’–

curl_easy_setopt(3) returns a CURLcode indicating success or error.

CURLE_OK (0) means everything was OK, non-zero means an error occurred, see libcurl-errors(3).

πŸ‘‘ SEE ALSO πŸ‘‘


xoxo, your libcurl bestie πŸ’œ this page is from libcurl, dated 2026-10-12, and it's the CURLOPT_RTSP_STREAM_URI(3) page β€” mwah πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from