I am trying to find out if I am missing information.
I am building a realtime app for video interactivity. I need to scale webrtc video and data channels It appears both calls and streams can do one to many whip in whep out. I am missing information if i can add a rtc datachannel containing important metadata as rtc messages. It seems with calls it is possible but not in streams.
do I see it right that streams is more of a transcoding + delivery service for traditional web streaming while calls is exclusively for low latency chat applications (like mine) and does not include server side transcoding is the main difference?
Correct. Calls is just transport between clients (who handle encoding/decoding themselves). It relays normal WebRTC connections that are often used by calling platforms. Stream is more of an upload + transcode + playback-on-demand service.
Hey, we are using Streams mostly for WebRTC streaming for several months now, and since last Friday notifications are no longer working for live_input.connected, live_input.disconnected and live_input.errored. Neither webhooks, nor email notifications. The stream itself is working, correctly shown as online and can be viewed. But no notification. Anybody has an idea what's going on?
Hello everyone! We're building ecommerce app for our clients and we need to integrate webrtc for the live stream. We have integrated Cloudflare live stream feature but the delay is more than 50 seconds. Could you please let me get the BETA account?
Hi, I am using webrtc for video streaming, via iOS and gstreamer on RPI, for a year everything worked without any problems, but after the update on March 13 I am facing that when I start the broadcast it shows me the status connected but without any metrics and the broadcast can be viewed in 1 out of 20 cases, in the documentation I didn't notice any changes, I don't understand what the problem is, the implementation on the two devices is different and worked without any problems.
Please do not ping community members for non-moderation reasons. Doing so will not solve your issue faster and will make people less likely to want to help you.
I believe this is for modifying an external video sitting in a R2 bucket or other available URL. I am really looking to manipulate the video already loaded to Stream so that I can split a two talking heads video to a have layers like in Opus Pro.
Maybe I could run through cloudinary or at least take a frame and send it to an image service to find the relevant faces then use Stream to crop?
It would be even more ideal to be able to do this via crop and not just allow for times
There's #workers-and-pages-feature-suggestions , but keep in mind the Media Transformations feature is new and being worked on actively. A proper crop mode is something that I hope would be available at some point. I also like your point of being able to transform videos diectly on Stream, adding the Media Transform options to the Stream clipping feature would be great
Hello, I would like to know about stream pricing. I have an app and want to store 100+ videos on Cloudflare, each with an average duration of 30 seconds. I also want to play these videos within my app.
Can I get HLS (m3u8) links, and what would be the price for 3,000 daily active users?
Thanks for your answer. I need to be cleared in another service. For my website I want to store 30k images and want to just get these images to show in my website. What will be the pricing? I'm not sure what is transformation mean.
WIll you just be storing and serving the images as is? Or will you use the transform options to modify the image before it is served? Transformation is only relevant for images that are transformed in some way before being served
I found this 404 also. If you search google for WHIP / WHEP, you'll find some repos with the same example code in it from some other repos. Pretty standard ICE / peer connection stuff.
I'm having an issue where I've uploaded an additional audio track to a video and this completes fine and the audio track is visible and selectable in the player, however when selecting the alternate audio track the video will only play for about 32 seconds before pausing and showing the loading spinner. Attempting to skip later into the video also has the never-ending spinner on the video.
Switching back to the original audio track makes the video immediately resume playing with no issues.
The additional track is just to correct a sync issue that occurred in the live stream input so the MP3 (and MP4 audio, as I've tried both formats) is just trimmed by approximately a second at the start so the audio/video line up properly.
Playing the audio only track locally (both MP3 and MP4 audio) work fine with no glitches.
The new audio track is deliberately 1-second (actually about 900ms) shorter than the original (about 27-minutes in total) based on the Stream documentation that says it will add silence to the end to pad the shorter track…this is so the audio syncs up right (this was due to a problem with the original live input…not due to stream).
I haven’t tried to pad the audio myself with silence at the end so it’s exactly the same length.
Just a FYI that padding the audio track with silence so it’s the exact same length as the original didn’t help unfortunately.
Just wondering if there is some specific codec requirements for uploading an alternate audio track.
I’m going to retry by uploading the audio track to an R2 bucket and providing the URL in case that changes the behaviour, as so far I’ve been POST-ing the mp3 via curl
Noob here. I am very confused with the Cloudflare Calls API. If my interpretation is correct, this is really just an enhanced SFU which simplifies the webrtc relay by only requiring clients to have 1 PC with the SFU. But a custom signaling server implementation is still required, acting as the intermediary, to manage and close tracks/sessions/renegotiations/etc... However, I am likely overlooking something here but the real value with this is for easy integration particularly for high-tenancy media sessions/streams? But given a hypothetical scenario where we are building a native webrtc application, would it not otherwise be cheaper to solution multi-tenancy using only STUN/Signaling (including multiple PC overlayed for each "participant") and then failover to Cloudflare TURN ($0.05/GB, same as Call API) if connection cannot be established? To me, the traditional approach + Cloudflare TURN for NAT/Firewall traversal is the cheapest design?
With the limitations I am running into with Stream outside of basic capabilities of serving videos does anyone have any recommendations outside of Cloudinary?
The main consideration there is that there are a large number of networks where NAT holepunching doesn't work or that disable UDP.
Apps like FaceTime actually use the fallback approach you described except the other way around. They generally start with relaying and then try direct P2P, and if that fails there's no interruption to the stream, it just remains relayed. Calls also has a (free) TURN server you can use to attempt P2P.
But also yeah, P2P doesn't work too well at scale, both because it's a lot of bandwidth and also varying network conditions. Past like... 4 people on a call it starts to be tricky.
A few questions I've had while trialing out the product...
Is it possible to use a custom domain for VOD playback with Stream? I can see there's an option for the ingest URL, but I don't seeing anything for assigning a domain for playback.
Is the maximum ingest bitrate a soft limit? I'm getting an error for videos with >200Mbps bitrates.
Also, how is the VOD file stored following ingest? Is there any information on the regional location where the original file will be stored after upload?
Has anyone sent cloudflare stream requests through a separate domain from the official cloudflare one? I think we're having some corporate firewall issues blocking the cloudflare stream domain and whitelisting a domain is like a 6-month effort.
Edit - after further investigation, it's a corporate firewall blocking Cloudflare Stream since watching videos is not allowed at work, lol.
Hey Guys im having an issue with my streaming side of cloudflare after 11hours 12min it stopped not sure why the encoder says its been going for longer but the stream link changed which is annoying any ideas ? i need to be able to stream for 3 day nonstop
hey, I cant find a page where I could manage by subscription level for Cloudflare Stream, increase my storage capacity, why is it so hidden? Anyone knows where to change it?