Hello,
To complete what I told you on my PM and answer specific points raised on this message:
For actual live spectator there have been attempts with modded game and modded maps. Nothing is supported from the game itself except just being in-game (as player), or viewing a replay solo. It's theoretically possible to hack the game or to create a 3rd party app to sync multiple clients on the same replay time. Not sure if it has been done, or if it's even worth it.
Doctrine selection and time is very easy from the replay file because it's an irreversible one time action.
Units killed is impossible from the replay file, because it is not written and it directly depends on the simulation done by the game engine. Unless being able to recreate the simulation of the game engine entirely... Or again to hack the game to listen to that information directly from the in-game memory/events.
Same problem for showing the units on both side...
As for the commands used, it will work, except you won't have the result of the command.
If you see clicks on the map, you don't actually know where units are without taking into account the map itself, path finding, combat, retreats, ... from the start of the game to the end.
If you see multiple units are queued on buildings, you need to simulate the building time, check there was no command to cancel the build, simulate the game to know the building wasn't destroyed, etc, etc before even being able to decide that the unit arrived on the map...
Or you can just make something approximate and only take into account the usual cases.
So basically half of what you want might be directly on the replay file, and for the other half it's probably impossible, unless recreating a perfect simulation of the game engine (from scratch or based on the game files), which either way doesn't sound realistic to do at all. At that point it's probably easier to "just" create a hack to the game memory to grab the required info...
And for those who didn't get the PM:
Time is in there, it's based on ticks 1/8 of a second if I remember. It's just an incremental number that you multiply to get time. It should be one of the first blocks of data before the actions.
You can look there for Inverse's coh2 parser we use on the site (actions didn't change much I believe):
https://github.com/ryantaylor/vault
Source for a coh1 parser (I don't remember in which state it is but probably functional or close enough):
https://www.gamereplays.org/community/index.php?showtopic=813678