Cloudflare is very picky about videos, due to not charging for bandwidth, nor storage. Videos, in general, unless they are a small percentage of the traffic, are best handled elsewhere or in an Enterprise plan.
You can use both, Cloudflare would come after Bunny, given how it works, and it’s the service customers hit. Set your headers well, so that caching works and you’ll reduce the bandwidth usage at Bunny by a lot.
Cloudflare is a pull CDN, vs. a push CDN which Bunny is, meaning it doesn’t store files itself. The files are pulled at request from the origin (which can be Bunny, or a server somewhere, or multiple servers) and, if they can, keep them cached (with a maximum limit in size and the risk for eviction, if it’s used rarely, but it would then go back to origin).
 There are some ways from Cloudflare to store data now, Pages, KV, soon R2, but the main service doesn’t store the originals.
I use both and would advise to use Cloudflare for your website. You can stick it in front of your own server/host. Page rules make it very flexible. For WordPress you can use APO or like me a bunch of page rules to make everything work like you want. You don’t need extra plug-ins.
For websites Cloudflare is the best product, but websites and streaming video are very different.
Cloudflare Stream and Bunny Stream are 2 products that offer about the same. I’m currently evaluating them both very intensive as alternative for Vimeo. Some observations:
Bunny Stream has a lot more options. For example to keep original files after transcoding and define your own transcoding rules and bitrates.
Cloudflare Stream has a better API and feels more developer-first. The Bunny API has some weird quirks like not respecting provided metadata on video upload. Cloudflare Stream API is more consistent.
Bunny Stream has a better dashboard. They support uploading your own thumbnail, there is no upload limit of 200mb via HTTP and offer cataloging with folders, collections etc.
The Bunny Stream player is more customizable.
Pricing is wildly different. Bunny Stream charges per GB, Cloudflare Stream per 1000 viewed minutes.
They both seem to be willing to innovate, listen to power users and take feedback seriously
If you are not a developer-type that can write their own dashboard, Bunny Stream looks like the best option. If you are more the developer type that enjoys writing your own functionality around a stable API, I would recommend Cloudflare Stream.