Zoom RTMS: Consistently Receiving JPEGs for Screenshare, Unable to Trigger Video Stream (h.264)

Hi All,

We are actively developing with Zoom’s RTMS and have a question regarding the data format for the screenshare stream.

Current Status: Our integration is working well for audio and user camera video. For screensharing, we are successfully receiving data, but it is always a sequence of individual JPEG images.

The Challenge: According to the Zoom RTMS documentation, the stream should dynamically switch from JPEG images to an h.264 video stream when the screen’s frame rate exceeds a certain threshold (around 5 FPS).

Despite our best efforts to trigger this higher frame rate, we have been unable to receive an h.264 stream. We only ever get JPEGs.

What We’ve Tried to Trigger the Video Stream:

  • Rapidly moving windows and scrolling through documents.

  • Playing full-screen, high-motion videos (e.g., from YouTube) during the screenshare.

Even with constant on-screen motion from a video, our RTMS listener only receives JPEG data. This makes it difficult to create a smooth video recording of the screenshare session.

Our Questions:

  1. Is there a specific account, user, or API setting that allows us to force or default the screenshare stream to be h.264 video instead of JPEG?

  2. Are there any community-discovered workarounds or “hacks” to reliably trigger the video stream condition?

  3. For those who have successfully received the h.264 screenshare stream: What specific conditions enabled it? Was it a particular type of content, a specific Zoom client version, or an OS-level setting?

We would much prefer to work with a video stream for screensharing. Any insights or suggestions the community could offer would be greatly appreciated.

Thank you!

Edit: Saw in the docs that screen share data and chat data is currently not supported

Can anyone from staff confirm that we aren’t receiving video data as its currently not supported and whether zoom has any plans to add video data for screenshare (and chat data) in future and any ETA for this?

Hi @BharadwajVarma, you’re right we’re still working to support screenshare and chat data. These will be coming soon! When available:

Media params like frames per second, codec, resolution, etc. are set during the media server handshake and will not change dynamically during a stream. If media params are not set, the server will send defaults.

To set screenshare to H.264, you will need to add this media_params object to your handshake request:

"media_params": {
    "deskshare": {
        "codec": 7,
        "resolution": 3,
        "fps": 25
    }
}

“codec”: 7 will set to H264 and will stay this way for the entire stream.