Is there a way to prioritize traffic without piping everything through queues?

I want to be able to give a particular multicast stream higher priority from the rest of the traffic on a link so in case of congestion it would still get through without hiccups.
Everything I managed to find in the internet about prioritizing traffic on RouterOS deals with putting the traffic in queues:

  1. Mark all traffic going on that link
  2. Mark traffic that should be prioritized
  3. Put all traffic for that link through a queue tree and make a sub-queue for the priority traffic and give that subqueue a higher priority.

But this method introduces unnecessary queuing and an increase in latency.

Does RouterOS have a simple prioritizing mechanism based on DSCP values? Something like:

  1. Set a priority DSCP value to the priority multicast stream in /ip firewall mangle (prerouting)
  2. RouterOS takes care of the rest and puts high priority packets on the outgoing interface first.

Is there a way to prioritize traffic without piping everything through queues?
Simply: NO
I’s impossible to prioritize something without inspecting it.

So RouterOS is crippled in that regard? It can't do DSCP-based QoS?

It can, using the queues. DSCP is just a way to convey the information about required priority. Any operating system works the same way - classifies the traffic based on some local criteria or accepts external classification received in L3/DSCP or L2/CoS fields, and then uses a queueing mechanism to let higher priority packets overtake the lower priority ones while forwarding them.

But with RouterOS queuing introduces noticeable latency and max-limit should be 80-90% of the ISP’s cap so you’ll basically be wasting 10-20% of your bandwidth. Not good.

Doesn’t have to be, but is the recommended way due to how your upstream ISP buffers things. This is also not just a Mikrotik thing, but any QoS best practice thing