Failed to connect the meeting server

Meeting SDK Type : Linux
Meeting SDK Version: v5.17.5.2561

I’m implimenting meetingsdk-linux-raw-recording-sample (GitHub - zoom/meetingsdk-linux-raw-recording-sample).

I followed the README instructions in Zoom Meeting SDK Linux Sample App.
I build the image using the command mentioned in README:-
docker build -t msdk-5.17.5-on-ubuntu-compact -f Dockerfile-Ubuntu/Dockerfile .
and run the container using the command :- docker run -it --rm msdk-5.17.5-on-ubuntu-compact
After running the container, at last I got “Failed to connect the meeting server” message in terminal . Please find the attached screenshot of the terminal.

1 Like one thing I would troubleshoot first is to remove the recording token.

If it works, then add the recording token back.

This can help eliminate the possible issues down to the recording token

1 Like

After removing recording token , LinuxChun was able to join the meeting and I got the
following output in terminal .
Please find the attached screenshot of terminal.

But again if I add the new recording token , I got the below output and LinuxChun was not able to join. Please find the screenshot below. there is a high likelyhood that the recording token is incorrect.

Do make sure that this recording token is for meeting ID 4174859488

The REST API should be calling
GET /meetings/4174859488/jointoken/local_recording

1 Like

After changing the recording token , Bot was able to join the meeting but I’m not able to get raw video and audio data. Terminal processing is not continuing. Please find the attached screenshot of terminal. it seems that the bot did not successfully join the meeting with the recording token.

Here’s what you should see

Recording token is expiring within 120 sec. So I tried to build image and run container within 120sec.
Bot is able to join the meeting and also recording is happening successfully. Please find the attached screenshot below.
Please guide me where the raw video and audio data will be saved ? the raw audio and raw video is stored in the directory where the compiled code is . It is within the docker container

1 Like

@chunsiong.zoom @donte.zoom
Recording token that I’m getting by calling this API : GET /meetings/4174859488/jointoken/local_recording
is expiring in 120sec. By the time container spins up, recording token is expiring, so Bot is not able to join the meeting.
Only once bot was able to join the meeting when container got spinned up within 120sec. Later on container is taking more time to spin up and so bot unable to join the meeting.
Please suggest what can we do about this ? , this is beyond the scope of this SDK as it is best practices on docker containers.

The creation of docker container is typically done once.
Subsequently when spinning it up, you do not need to build again as the image has already been built.

You just need to pass in the new auth token, meeting number, password and recording token.

1 Like ,

you can probably now run something like
docker exec -it msdk-5.17.5-on-ubuntu-compact /bin/bash

use nano or vim to change the config file
then launch the app in /bin folder

1 Like

Thank you @chunsiong.zoom . I’m able to get output.yuv file.
I’m using ffmpeg to convert yuv to mp4. After converting I’m getting mp4 video , but at the end of video there is blurred mess of colours and lines and I got the following error while converting:

[rawvideo @ 0x5574cfd0d800] Invalid buffer size, packet size 302400 < expected frame_size 460800
Error while decoding stream #0:0: Invalid argument

I used the following command to convert yuv to mp4
ffmpeg -video_size 640x360 -i rawVideo.yuv -c:v libx264 -s:v 640x360 -preset slow videoOut17.mp4

I have attached the link to mp4 video that I got

I also used Gstreamer to convert and I didnt get any errors but video was the same with colour blurrness at the end. you might want to try something like this

ffmpeg -f rawvideo -pix_fmt yuv420p -video_size 640*360 -framerate 25 -i chrome.yuv -f mp4 chrome.mp4

1 Like

Again I got the same video with blurred mess of colours and lines at the end and error with respect to frame size.

Also I observed that I’m getting blurred mess of colours and lines only in the part of the video when I start to speak while recording. I tried without speaking and there was no blurred mess of colours and lines in the mp4.

1 Like here’s the tricky part about raw data. the video frames which are returned can be of various size.

I’ve just tried only saving frames which are 720p. If you only choose to save frames which are 720p, there is no corruption in the resulting conversion.

If you want to save all the frames (of various resolution), you will need to do conversion on the fly as you are receiving the yuv420p frames. There are code samples online on how to do it using ffmpeg library.

1 Like

Hey as @chunsiong.zoom mentioned, the incoming frames can be different sizes. This causes the errors you observed, as you’re specifying a hardcoded video size with the -video_size 640x360 flag.

Because of this, any frames that are of a different size than 640x360 will be parsed incorrectly and result in an incorrect output frame. This size change can happen dynamically as more videos are subscribed to, or network conditions change.

The most straightforward way to take these incoming frames and turn them into a fixed-resolution output video would be to use GStreamer with an appsrc at the input (so you can specify frame width and height for each frame individually), a videoscale in the middle so you can normalize the frames to your desired output size, and an x264enc + mp4mux to encode and mux the video.

Another alternative is to use for your meeting bots instead. It’s a simple 3rd party API that lets you use meeting bots to get raw audio/video from meetings without you needing to spend months to build, scale and maintain these bots.

Let me know if you have any questions!