Background:
I’ve integrated Cloudflare Stream with our virtual conference platform. It allows presenters to upload video presentations of themselves, and conference registrants to view / stream video presentations in their browsers.
In late November we opened up for presenters to submit their video presentations by uploading through our platform. We used TUS-based uploading to get the videos to Cloudflare Stream, first saving the raw file in an S3 bucket and then uploading to Cloudflare from our servers (using AWS Lambda).
In December, after all the presentations were uploaded and converted, we opened up the conference on-demand video content to registered attendees. This particular conference had ~415 x 15-minute video presentations. We also uploaded recordings of our live Zoom webinars consisting of video files of 5+ hours.
My experience with Cloudflare Stream for a virtual conference of ~415 video presentations:
As a developer, I found it easy and pleasant to work with Cloudflare Stream and it’s API. Overall I’m happy with the service and its predictable and highly competitive pricing. However, I did experience some trouble along the way and unfortunately, some of these issues absolutely needs to be fixed in order for us to continue using Cloudflare Stream for our future virtual conferences. Here’s a list of all the unresolved issues (as of Dec. 22, 2020) that we encountered:
-
Quality selector missing from Player: The JavaScript Player sometimes shows the quality selector menu and sometime doesn’t. It varies between browsers, devices and seemingly changes on a day-to-day basis. It’s been reported as a support ticket and also mentioned in the forum, here, here and here.
-
Crackling noise in videos played in Firefox: Many of our user-uploaded video presentations (often mp4-files created by Office PowerPoint’s “record slides”-feature) had a crackling noise when played back in Firefox on Mac and Windows. This did not happen if the videos were played back by Chrome, Edge or Safari.
-
Large TUS uploads did not call our backend’s webhook: When we uploaded videos that were several Gb (3+ hours long) the webhook call did not fire, causing our backend to think the videos were still converting when they in fact were ready. This only happens with very large/long videos.
-
Videos taking 5+ hours to finish converting & not triggering webhook: Occasionally, we’d have small videos (15 min / ~200 Mb) taking forever to convert. Some (I’d say about 50%) of these conversions that seemed stuck did fail with a conversion error after many hours, some succeeded and some failed without triggering our webhook at all. This led to much frustration for the presenter’s who wanted to check if their upload converted successfully before the submission deadline, and to a lot of work for us, having to manually check the Cloudflare dashboard for failures.
-
Poor video quality: The most frustrating issue for the attendees of the conference, who were viewing the on-demand video presentations using Cloudflare’s JavaScript player, was the poor quality of the videos. The adaptive streaming (auto quality) feature very often didn’t upgrade the quality automatically, even though the end-users internet connection and device clearly could handle the bit rate and the source file was successfully converted and available in 1080p (I’ve reproduced this myself). This, combined with the fact that many didn’t see the quality selector in the JavaScript player, and thus were unable to force 1080p, led to people having to watch the stream in 480p or worse.
I have ongoing support tickets for most of these issues, so I don’t expect a reply from Cloudflare in this thread, but I hope that by posting this I’ll bring more attention to the issues that I’m seeing several other Cloudflare Stream users also struggling with.