#MATL, 18 17 bytes
MATL, 18 17 bytes
YBTyd~Thhfd1wY{ZB
YB % input number. Convert to binary string
T % push true value
y % duplicate binary string and push it at the top of the stack
d~ % true for each value that equals the previous one
T % push true value
hh % concatenate: true, indices, true
f % find indices of true values
d % consecutive differences: lenghts of alternating sequences
1wY{ % split binary string according to those lengths
ZB % convert each substring into decimal number