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.
If you require any further information, let us know.
Best regards,
Zeroqode Support Team.
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.
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).
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.
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!
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).
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.
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!
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.
Thanks for incorporating these changes! I’m sorry to hear that they haven’t helped
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!