ZQ Agora Video Livestream - output to MP4

Hi all,

Has anyone found a solution to the @ZeroqodeSupport Agora Livestream plugin to output files as MP4 using composite recording?

Agora support have confirmed that livestream recording is supported for composite recording.

Otherwise, it splits a livestream recording up into multiple m3u8 files and ts files.

Any help or suggestions would be greatly appreciated

Thanks
Reece

Hi @help,
Thank you for your message.

In the Agora Streaming & Video Conferencing Plugin, we have only the possibility to record the Streaming - the single-flow recording. So, in case the composite recording is used for the streaming, the plugin is searching for different flows and records a silence.

We noted the idea to add the Composite recording for future plugin updates, however, it requires a lot of time to implement.

Please let us check with the dev team for any updates regarding this matter and we will notify you once it will be possible and available.
Thank you for your understanding. :pray:

If you require any further information, let us know.
Best regards,
Zeroqode Support Team.

Hi @help,
We kindly appreciate your patience.

The Agora Streaming & Video Conferencing Plugin allows saving to mp4 only under certain conditions, see the screenshot below.

For that, you have to use Start composite cloud recording plugin action, see the screenshots below and the plugin demo editor page for additional references.


stop composite recording

If you require any further information, let me know.
Best regards,
Zeroqode Support Team.

Hi, were you able to find a solution for this? Composite recording is saving the recording as a single m3u8 file and not mp4. Thanks!

Hi @rao2001,

Thank you so much for reaching out to us :hugs:

The Composite Recording actions will upload a MP4 file to the bucket with both video and audio.

Please let us know if you have any questions or need assistance with our plugins!

Best regards :sunflower:

Browse all Zeroqode Plugins for Bubble Banner_Last3

This is how my composite recording is being saved (a single m3u8 file). Could you provide a link to the Agora Cloud Recording documentation that might help? I noticed that in the Agora plugin documentation, there’s a link included (https://docs.zeroqode.com/plugins/agora-streaming-and-video-conferencing/agora-cloud-recording-setup), but it seems to be broken.

Hi @rao2001,

Apologies for the delay in our message!

Could you please confirm if you are trying to record a stream or conference in Agora? Additionally can you tell us the version you are currently using on your application?

As of recently, we have released a new version of Agora - version 1.69.0 - where we updated the recording features and it has a different setup. Below is more information about the new setup, as we are still working on updating the documentation of the plugin as soon as possible!

Attached here is a screen recording that shows how to set up the recording setup for successful recording.

Let’s start with setting up the start of recordings for composite (it’s similar for individual recordings).

  1. Set the Unique ID custom state. This isn’t a random generated string anymore - it’s the ID provided by the plugin element in the state User UID.

  2. Generate the recording token. To do this, use the “Generate Recording Token” action. Set the Mode to either stream or real-time call. Provide the room name where users joined the stream or conference, the token’s expiration time (you can set it to 0 to make it non-expiring or a time in seconds), and the Unique ID saved previously.

NOTE! Please make sure the Agora projects have the Primary App Certificate enabled and added to the plugin key fields!

  1. Get the Resource ID. Use the “Get Resource ID” action. Provide the app ID of the Steam or conference application, the room name, the Unique ID, and an expiration time from 1 to 720 (hours).

  2. Start recording. Use the desired recording action, either composite or individual. Inside the action, add the App ID (the same as used in the previous action), the Resource ID generated in the previous action, the room name, the Unique ID, the storage vendor (1 being AWS - more info here), the storage region (7 being eu-central-1 - more info here), the access key and secret key from the storage vendor, and the folders where you want the files to be saved. Make sure to use double quotes around the recording token field as shown in the screen recording.

  3. The final step is to save the generated Resource ID and the SID generated by the start recording action - preferably in custom states

As for ending the recording, use the “Stop Recording” action (either individual or composite, depending on what you started earlier). To do this, you’ll need to set up the following information:

  • App ID: The ID used in the previous action.

  • Resource ID: The ID generated previously.

  • SID: The previously saved SID.

  • Room name: The name of the room where the recording is taking place.

  • Unique ID: used in previous actions.

Please note that there’s a lot of information to be provided, so please take your time and ensure that the setup is precise. If you require any additional assistance, please let us know!

As a test, you can check out this test page, pressing on the red “Generate room name” button first. Then you can join either a stream or conference, select the wanted recording (composite/individual) and start recording. You will also be able to see the red workflows, which are the start and stop workflows for both recording options for both conference and stream.

With the correct configuration, after the recording has finished, a MP4 file was successfully uploaded to the specified bucket!

Best regards :hibiscus:

Browse all Zeroqode Plugins for Bubble Banner_Last3

Thanks for the reply! However, after updating the plugin and updating the composite recording workflows, I’m still only having a single m3u8 file saved to my bucket.

Hi @rao2001,

Thanks for incorporating these changes! I’m sorry to hear that they haven’t helped :pray:

Could you please let me know if you’re triggering the stop action before checking the bucket for the MP4 file? Agora uploads periodic M3U8 files during recording for more information. After successfully triggering the stop action, the MP4 file should be uploaded to the bucket!

Could you also show me how you’ve set up the workflows for starting and stopping recordings? You can send me a screen recording (using a tool like Loom.com) of the workflows, actions, and how you trigger the recording on the page. You can also show these steps using “step-by-step” mode from the bubble debugger. Additionally, please include the results from the bucket!

On our end, everything is configured and working as expected for composite recording on streams or conferences!

Best regards :sunflower:

Browse all Zeroqode Plugins for Bubble Banner_Last3

I sent you a private forum message with a link to my editor. Thanks!