The initial costs can be very high for streaming -- as you have to pay for large buckets of bandwidth and the hardware to support streaming.
There are companies that provide this hardware and bandwidth setup at subscription rates (some charge you the amount of bandwidth you use, what kind of streaming you do, etc).
I have done some on-demand streaming before -- it was over a closed network. Initially the setup is a bit of a hassle. Depending on what format you decide to stream, you must convert all your raw files into that format. This can be a lengthy process if you have a lot of playtime to serve. This also requires a very strong system beacause encoding is 99% processor intensive -- and requires a lot of memory.
However this is no where near as complicated as live streaming.
The most cost effective way for you would be to rent the bandwidth and hardware -- do the encoding offline (decide first what format you will choose) and then just write an interface to the streaming servers. Don't rent this hardware from vanilla hosting companies. There are specialized companies that provide streaming solutions.
In order to understand recursion, one must first understand recursion.
If you feel like it, you can read my blog
Signal > Noise