When tantrums have carried on for so long the first thing to consider is are they functional or are they a loss of control i.e. is the child screaming and lashing out because they sometimes achieve the thing they want by doing it or are they losing it because they cannot cope with the emotions they are experiencing and this is a way to communicate their overwhelming distress?
Have a really good think because you need the handle to two things differently.
If the tantrums are functional because they have been given the message that 'no' means 'no, unless you give me a really hard time in which case I might give in' you need to think about changing your own parenting style. Only say what you mean and mean what you say. If there is a consequence to certain behaviour give one warning and then carry it through. Brazen the tantrums out while giving off signals which say 'it's fine if you want to embarrass yourself. I will just wait until you've finished and then we will carry on as before'.
If these are meltdowns due to loss of control you need to look carefully for the trigger. Is it sensory? Loud noises, crowded environment, people touching them, too many smells, a combination of a few? Is it a change in routine? It is worries about something coming later. Try to discriminate between the immediate trigger and others which might have been building up behind the scenes.
For example my DD2 (9) has AS and struggles with being away from home. She had a meltdown on holiday which appeared to have been caused by her trapping her finger in a door handle (it didn't even leave a mark). She immediately went into full blown kicking, screaming, throwing, trying to escape and had to be restrained. The trapped finger was the immediate trigger but it all happened because we were away from home in unfamiliar routines and had her cousin staying with us. I could have put it down to bad behaviour and punished it but it would have served no purpose as she had no control over her actions. It was my fault for letting her get so stressed in the first place.
So my suggestion would be to look very hard at each tantrum, including asking the child afterwards in a very non-confrontational manner, and try to work out the reason behind the tantrums. Then hopefully you will know what it is that you need to adjust about your own behaviour or the child's environment and routines to help reduce the outbursts.