Cloudflare Stream Beta Feedback



Hey, thanks! Extension and content type look fine now, but still no audio on Apple TV. This is with the current release version of tvOS.

Easy way to test: Get the app “TV Streams Lite”, add a channel and enter the CF url (easy to do with the iPhone keyboard)


Hi hklcf. For this video, do you have the site attribute set on your embed code? If not, we won’t be able to collect analytics for your zone.

Making requests to https://null is clearly a bug though, a fix should be going out promptly!


Any link to documentation for endpoints? I want to programmatically delete videos, but no idea which endpoints to hit (or if this function is even available).


Heard back from Apple:

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=“audio_group”,NAME=“Rendition Description”,LANGUAGE=“en”,URI=“audio.m3u8”

You need to add DEFAULT=YES to the above line, to make the audio working


We have done some testing and feel quite confident that the encoding and delivery stack will work. This is a summary of what is currently blocking us from taking a decision.

Price - this is a showstopper. We can not invest more in research and development without any indication.

I saw a comment that you consider consumptioned based prices based on played minutes in a comment. Since bandwidth currently are on a flat fee, at least on your self-service plans, this would encourage us to select another service for encoding and storage but still deliver content through Cloudflare. A more predictable approach, at least for us, is a consumption model based on storage and encoding minutes. (I’m happy to provide you with our video stats and costs to have a private price discussion).

End-user upload - All our video files are uploaded by editors or our users through their web browser. We need a simple and safe way to enable upload in a browser with a one-time code client side generated server side.

Just like you have a browser api for the player I would like to see an upload api in the browser. I would like to call an api endpoint server side using my secret key to get a video-id/upload-id and a code snippet back that I can send to the browser to enable a user to upload one video.

I do not want to build a hack with workers to hide my secret key and build my own authentication in workers as suggested as a workaround. I would prefer not to reference tus.js directly and keep track of compatibility and updates - you should embed it in your browser api. I also prefer if you configure the tus client for me.

Origin file - Users own their data. We need to be able to provide download of the origin upload. It does not make sense that we should handle this separately.

Access Tokens - We need to be able to generate time limited playback links/tags. You should not be able to craft your own playback link and share with others since most of our content is private.

White label - we prefer if upload and playback is from our domain and not Our customers trust us and our domain and we do not want them to see who is handling their data if possible.



We have the same concerns.


I want to use FFMPEG to extract thumbnails from my uploaded videos.
I’ve tried using FFMPEG like this:

ffmpeg -ss 00:19:32.000 -i -f mjpeg imagefile.jpg
  • It works, but it’s muuuuuch to slow. The reason for this is because it’s an HLS stream. Is there a way to access an mp4 file (progressive stream) or my original upload for this ? Or are there any other solutions that might be better. I would like not to upload to s3 etc.


Hi Fredrik. We really appreciate the open feedback. In terms of your pricing concerns, we are planning to launch with a $1/1,000 minutes streamed pricing model. Additionally, there would be another small fee for storage.

If you reach out to me at [email protected], I’d love to see your stats, and we can dive deeper into our current model.


I understand the storage pricing, but why the price per streamed minute, given that you even use “unused” servers to stream so would decrease load with respect to a video hosted on our own server?


i’ve the same problem about processing. is very slow… and for 2 videos, after processing i’ve received error messages.

Thank u for support!



Have tried Stream today, upload works flawlessly and without any problems through CLI.

My main concern is about the player. As others have said:

  • Allowing users to switch between quality levels is important.
  • On mobile (in combination with Bootstrap at least), the player looks “messed up” and it is not possible to change sound levels.

From an end user point of view - and those people are the most important piece of the puzzle for me - improvements in the player are very desired. Or does someone know how to use a different player? I’ve seen videojs mentioned in this thread but I don’t know how to combine the two.

Nevertheless, a great product. Thanks!

Edit: I am now too using videojs to serve the HLS. I guess this fixes the front end issue. However, I think the player from Cloudflare is a great idea (and would allow me to serve DASH to everyone except Apple devices) and with a few improvements I would use that instead my custom solution.


The video playback does not work on a Samsung SM-T230NU android tablet, using Chrome 65 for Android version 4.4.2.

After pressing the play button, the player shows the VOD as “Live” even though the video is not a livestream. Regardless, video playback does not occur – I only see the poster image.

There is also no console error messages, warnings, or info. In the Network tab, the video player does not seem to fetch any HLS video segments at all. I noticed that the player switched to HLS playback since DASH is not supported on this device/browser combo.

I find that any Android version below 5.x has huge problems with video playback on the browser. Even if HLS playback had succeeded, the browser/device would freeze or crash after 5-10 minutes of playback. The most “stable” and compatible video playback tech is to just serve the mp4 without messing with HLS/DASH.


Requests for Stream product:

1.) An easy/quick way to grab the HLS, DASH, and MP4 stream files for use in our own custom players (video.js-based player). These urls could be in Stream’s dashboard on the cloudflare site, or via an API endpoint.

2.) For those using your Stream product’s default player, allow us to attach VAST/VPAID urls for video preroll, midroll, endroll video ads.

3.) For those using your Stream product’s default player, have the player emit player events so we may have an easier way to integrate the player w/ front-end website logic.


Since I posted this bug, the device seems to be able to play the HLS video now. However, due to the inherent problem with the device/browser combo, you cant stop the HLS playback even if you force close Chrome. This is not a problem with Cloudflare’s player – this is a fundamental Android 4.x problem on legacy hardware.


How does one hide the player controls?

My use case is short duration silent videos that loop and autoplay so player controls are useless as is the initial “play icon loader”



  1. upload a video and copy and paste embed code into html page.
  2. start the video on the page.
  3. hover cursor over video when it’s running.

What happens:
Video is playing but goes black. Audio still playing.

What should happen:
Video should be seen.


I can’t reproduce this. Which browser and OS are you using? Do you have a URL we see this on?


Safari on MacOS High Sierra

Where can we send info in private?


Would love to move all my vids from Wistia – but must have subcaptions.


I’d love to send you more details re the bugs. Where can I send it to in private?

Btw, I’ve tested this on Chrome, Firefox and Safari on MacOSX and the results are the same.

Basically when you first hover over the ‘play button’ on the video preview static picture, the picture fades out to black, right?

Now even after clicking the Play button, and the video plays, the entire video container is still blacked out. It only fades back in (with video still playing) when the mouse leaves the area. Hover the mouse over the area again, and the video fades to black again (while still playing – you can hear the sound).