The way that I used to do it is with a heart rate monitor and a site I found that I can give you a link to. I didn't trust that my HRM would give me accurate calories burned once I changed the battery (it messed up some settings and wouldn't register anything under 120 bpm as burning extra calories- and my RHR was in the low 50s), so I would plug in my HR there and it would tell me how many calories I burned off.
Anyway, I find that is most accurate. You don't need a HRM really. Just in between sets or something, count how many beats you feel for like 15 seconds and write it down, and then find the average HR based off of that. When I don't have my HRM, I'd chose 4 pts during the workout to check my pulse for 15 seconds, and then just write down the # of beats, and then at the end, add up the 4 values and you have a rough average.
Example: If I have a 20 minute video, every 5 mins or so I'd count for 15 seconds
5 min: 25 beats / 15 sec
10 min: 32 beats / 15 sec
15 min: 38 beats / 15 sec
20 min: 30 beats / 15 sec
Total: 125 beats / 60 sec, which is 125 bpm.
I enter in my stats, and it tells me I burned roughly 140 calories in my 20 min workout!
I typically try to take off the # of minute of exercise in calories (ie, 20 min = 20 calories) to find how much more I burnt than if I had spent that time doing nothing, so my 20 min workout becomes 120 calories extra burned.