jaskie / Server

This fork of CasparCG Server contains enhancements used in broadcast play-out system used in TVP.
http://playoutautomation.tvp.pl
GNU General Public License v3.0
20 stars 4 forks source link

QT RLE and QT PNG with transparency in 8.1 #11

Closed martastain closed 4 months ago

martastain commented 4 years ago

In the 8.1 version, I have problems with the playback of several types of video. I've performed the same test with 7.3b and there were no issues.

I've created four files for testing:

RLE encoded files don't work at all (with or without alpha channel): we use files like this (exported with an alpha channel from After effects) for graphic overlays and with previous versions there's never been a problem.

The test files are created using ffmpeg from a PNG sequence, but the result is the same: Info command reports file is loaded, but frame-number and file-frame-number values are unrealistic:

    <nb-frames>250</nb-frames> 
    <frame-number>2147483647</frame-number>
    <file-nb-frames>250</file-nb-frames>
    <file-frame-number>2147483647</file-frame-number>

The diag window shows a layer, but there is no textual information like ffmpeg[filename|1920x1080......]

qtpng.mov (without transparency) works fine, but the same codec with an alpha channel produces weird moire over the transparent area when the last frame is reached and playback stops. When looped, this particular file works as expected.

I also have another file, which I, unfortunately, can't share (ProRes 4444 with alpha) which - set to loop - stops at the last frame, produces the same moire effect and then Caspar starts reporting a lot of "Frame late" and "Frame dropped" warnings. This may however be a problem of the source file because it behaves similarly in 7.3b too (only without the moire effect).

You can find a picture of the problem described (with #cccccc color producer as a background), as well as a screenshot of the diag window and QuickTime files at the following link.

https://drive.google.com/drive/folders/1BzlVcchzezER1_Eq8zD1g7K7lDCpDGLh?usp=sharing

jaskie commented 4 years ago

Hi Martin, thanks for reporting. Would you confirm, that the attached exe works OK for the case? casparcg.zip I must test more before publishing the binary. ---Jurek

martastain commented 4 years ago

Hello, QT RLE files now work, but the problem with interlacing pattern/moire in the alpha channel persists - so far every format with alpha channel I tried was affected. Moire appears when the playback is stopped - at the end of a clip or when playback is paused manually.

jaskie commented 4 years ago

Hi, it's good that it works, bad is that I can't reproduce the moire effect, at least on 1080i50 channel. I suspect it may be related with improvements with playing scaled video. The point is that when up-converting from SD to HD interlaced content, it's best to apply bwdif (double framerate), scale (at doubled framerate) and interlace filters. But bwdif delays video by one frame (as it needs to know next frame to produce output), so I decided to repeat last frame to flush the scale filter. To verify this, I prepared and attached test version that does not send the additional frame to filterchain. Would you test it and report of any difference? casparcg.zip

martastain commented 4 years ago

My mistake - I've just found out that this is not a new problem and it's actually caused by setting mixer/blend-modes to true in casparcg.config - I tried to turn this on when I was unable to see graphics in Qt RLE format and I didn't switch it back.

So the version you posted before works for me, since I do not use blend-modes, but maybe you still want to know, that I've just checked that there is no such problem in 2.07, but it is present in the TVP fork since 5.2.