What’s better for non-peer-to-peer live streaming, WebRTC or RTMP?

It depends on your needs but the industry is moving towards to WebRTC.

RTMP is a widely used TCP based streaming solution. WebRTC is a new solution and usually works over UDP (unless TCP/TLS TURN relay is needed).

If you need streaming to browsers, then WebRTC is a clear winner in 2018 since Flash is fading out from browsers.

Regarding quality: I don’t think that there is a clear winner at this moment. Both of them has some advantages and disadvantages, however WebRTC is an emerging technology and becomes better each year, especially by introducing better codec and eliminating early bugs in browser implementations. WebRTC usually has better quality while RTMP tends to be more stable.

HLS and RTMP are well known protocols for streaming media contents over. HLS stands for HTTP live streaming and it is the application layer protocol. … The idea of HLS is to stream media over the HTTP protocol, whereas RTMP streams media over TCP or UDP protocols.

Regarding costs: WebRTC is a bit more complicated because it need proper TURN server setup to be able to stream to networks behind firewalls and it’s stack is a bit more complex (mandatory DTLS/SRTP encryption)

If you need to build a future proof solution to stream also to browsers then the definitive answer is WebRTC.