Thanks again for the help. I have done a huge amount of research on this and it seems that no amount of fiddling with yadif commands will help.
Here are the steps so far:
I created a 1080i50 sync test video. The vertical markers each represent 1 frame. There is a travelling bar between these markers which moves across the screen every 1 second. Here is a screen shot which shows the upper and lower fields merged into one frame. You can see there are two travelling bars. The first one, which lines up with the frame markers is on the odd number (upper) fields. The second one, between the frame markers, only appears on even number (lower) fields.
I rendered out the 1080i test video as 25p, which flattened the two fields onto one frame. I then played this file out using an playback device which can take a 25p file and output it on SDI as PsF. Here is a photo of the output on a SDI monitor:
The slow shutter speed of the camera captured 80ms of movement (4 fields / 2 frames).
I put this SDI source into a 25p Caspar channel (using the "Decklink Input" tool in the official client) and then output the channel as Decklink SDI:
As you can see, only the upper fields are showing.
I tried hreinnbeck's suggestion but the output was the same.
I had to make 2 tweaks to hreinnbeck's code:
1) ADD was replaced with PLAY. You can only put filters on a Decklink Producer (created with PLAY), not a consumer (created with ADD)
2) Format has to be 1080i in order to get any video content. PsF is technically much closer to interlaced than progressive
Here is the corrected code
- Code: Select all
PLAY 1 DECKLINK 1 FORMAT 1080I5000 FILTER yadif=0:-1:1
I then tried every conceivable combination of settings in yadif
. The only thing which made a visual difference was changing the field order, in which case Caspar would output the the even fields instead
In short, no yadif setting enables output of both fields into a progressive frame. And you can't turn off yadif; if you leave out the FILTER option, Caspar has logic hard-coded in to automatically deinterlace
There are only 3 options I can see:
1) Ask BMD to explicitly support PsF formats in their SDK's (long shot). I assume this change in SDK would also then require some implementation in Caspar to handle the new format
2) Try to find an existing ffmpeg filter which will remove the interlaced flag from the incoming source and therefore, hopefully, stop Caspar from applying yadif automatically (I searched extensively and failed completely to find an appropriate filter)
3) Ask a kind Caspar dev to code a yadif command keyword to optionally remove yadif altogether. Such filter keywords already exist
. I would like to see one for no_deinterlace
I have created a new thread in the Development section
to request this.