All in all: if I read in an interlaced video with VideoCapture
and instantly write it out with (any kind of) Videowriter
it will be technically of progressive type but contents-wise
still of interlaced type? (Which would be very bad I might think)
This would mean, I would always have to check and eventually
deinterlace.
I repeat: do NOT use opencv for any kind of video transcoding. use ffmpeg.
there is no “technically”. interlaced is interlaced. it may be represented in stupid ways but it’s still interlaced. packing two fields in one “progressive” frame is still interlaced, just hidden and easier to fuck up.
OpenCV is happily unaware of any interlacing. it just asks ffmpeg for progressive frames. ffmpeg doesn’t insert any filters to remove the interlacing either. it just packs two fields into one frame and hands it over.
if you have interlaced material, preprocess (deinterlace) it with ffmpeg into progressive material. then you have material that is progressive. then you can stop worrying about this accident of history, this war crime. interlaced is a plague. any devices that produce interlaced material should be ceremoniously destroyed and the debris sent to the designers.
Identifying the true scan type of a movie is accomplished by ffmpeg’s idet filter.
(You shall NOT rely on the meta data!).
If you now think at a workflow of having arbitrary videos
you don’t know the scan type of it would be quite impractical to
determine the scan type and in case interlaced: deinterlace and
encode the movie lossless to read the result into OpenCV.
I understand that OpenCV isn’t for video transcoding,
but in the sketched case it would be nice to have an idet in OpenCV
to do it “on the fly”/ framewise?