Handling Multiple Framerates

Please would anyone be willing to explain why CasparCG doesn’t support playing out media with different frame rates. Is it performance concerns? And if that’s the case, what causes the performance drop?

Thank you very much for your time

P.S: I know the multiple frame rate issue has come up on the forum before, I just haven’t seen the reason explained.

I don’t know, if there is a performance or stability concern, that needs to be answered by someone from the dev-team.

In my opinion it’s nothing, that is needed in the broadcast world. In a TV broadcasting organisation you seldom have to deal with frame rates, that are outside of the standards in the country the station is located. Stuff that is coming from other sources are either transcoded or sent to an edit suite for processing. Durring broadcasting they also follow the standard given.

The channel mixer is what sets the pace. If it runs at 50hz it will take a frame from every producer 50 times a second. This is done 20ms apart (realtime). To make this work with 60hz media in a 50hz channel would imply some frame rate conversion before the producer can hand off the frame to the mixer at 50hz. This was once developed but deemed to costly to maintain.

Thank you @didikunz

I work at a T.V. station that’s just starting out.

Transcoding every media file would be a constraint on our workflow that may not be easy for me to justify, especially since we have a B.M.D Cross Converter for matching mixer output to the broadcast standard.

Just for curriosity: Why does your TV station get that many materisls, that do not match the stations frame rate?

Thank you @balte

I understand the issue more clearly now.

You cited playing 60 Hz on a 50 Hz channel and I can sort of visualize why that would cause problems. Would playing 50 fps media on a 60 Hz channel lead to the same problems?

From CasparCG’s perspective the media does not have a framerate, it just requests a new frame every 50hz. You could use the PTS of the frame to decide whether to double / drop it when it is not in a native rate but doubling/dropping causes visible stutter.

The following graph may help you understand better how this doubling / dropping would work:

In case of playing 50hz media in a 60hz channel the frames would play back as follows: 1 1 2 3 4 5 6 6 7 8 9 10 11 11 12, so some frames will show double length and other frames will be played slightly too fast.


I realize that this is extremely belated, but thank you very much for this visualization. It made the issue abundantly clear.

Privacy Policy   Terms of Service