Changing scan type (progressive<->interlaced) without reencoding.
Hi, As the title says, is this at all possible? My concern is mostly with mpeg2 and h264 that have content of one type but encoded/marked as another. Most notably content that has progressive video but stored interlaced. So I'm probably talking about a bit stream filter here because just setting the "field_order", "top" etc. flags when rewrapping does nothing.But I have not found anything in the official docs that suggest this is currently possible so it would be nice if some of you developers could shed some light on this. Thanks, Steinar Apalnes
It’s no problem at all. Btw, it’s very common to store progressive as interlaced, as broadcast still requires interlaced material, no matter how it is shot. From memory, just do a -c copy and you’ll end up with the source in a progressive container. Bouke
On 05 Dec 2022, at 11:56, Steinar Apalnes <steipal@gmail.com> wrote:
Hi,
As the title says, is this at all possible? My concern is mostly with mpeg2 and h264 that have content of one type but encoded/marked as another. Most notably content that has progressive video but stored interlaced. So I'm probably talking about a bit stream filter here because just setting the "field_order", "top" etc. flags when rewrapping does nothing.But I have not found anything in the official docs that suggest this is currently possible so it would be nice if some of you developers could shed some light on this.
Thanks, Steinar Apalnes _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email ffmpeg-user-request@ffmpeg.org with subject "unsubscribe".
As the title says, is this at all possible? My concern is mostly with mpeg2 and h264 that have content of one type but encoded/marked as another. In a general manner, amongst other things, interlaced encoding involves interlaced DCT, so this is not possible because it is not a simple "mark". In some very limited scenarios, it is possible to tag interlaced content as progressive-segmented frame (PsF). Take mpeg2/h264: I have never seen any implementation (neither encoder or decoder) of the flags that actually allow to mark progressive content, so PsF is pure theory here. So today, for example, only "progressive sequence" mpeg2 is considered progressive : you have to transcode.
Most notably content that has progressive video but stored interlaced. "encoded" rather than "stored", but yes, it is indeed very commonplace. Nevertheless, be very very carefull, it is also very very commonplace to have interlaced branding/finishing on progressive content, so it can end up with 1 hours of pure progressive content with 3x period of 10s where an interlaced title appear or disappear in a corner... This is why deinterlacing filters are both so useful and so tricky.
Nicolas
On Tue, Dec 6, 2022 at 10:56 AM Nicolas Gaullier <nicolas.gaullier@cji.paris> wrote:
As the title says, is this at all possible? My concern is mostly with mpeg2 and h264 that have content of one type but encoded/marked as another. In a general manner, amongst other things, interlaced encoding involves interlaced DCT, so this is not possible because it is not a simple "mark". In some very limited scenarios, it is possible to tag interlaced content as progressive-segmented frame (PsF). Take mpeg2/h264: I have never seen any implementation (neither encoder or decoder) of the flags that actually allow to mark progressive content, so PsF is pure theory here. So today, for example, only "progressive sequence" mpeg2 is considered progressive : you have to transcode.
Most notably content that has progressive video but stored interlaced. "encoded" rather than "stored", but yes, it is indeed very commonplace. Nevertheless, be very very carefull, it is also very very commonplace to have interlaced branding/finishing on progressive content, so it can end up with 1 hours of pure progressive content with 3x period of 10s where an interlaced title appear or disappear in a corner... This is why deinterlacing filters are both so useful and so tricky.
IIRC there was/are some bitstream filters that can change stored flags at bitstream level.
Nicolas _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email ffmpeg-user-request@ffmpeg.org with subject "unsubscribe".
Most notably content that has progressive video but stored interlaced. "encoded" rather than "stored", but yes, it is indeed very commonplace. Nevertheless, be very very carefull, it is also very very commonplace to have interlaced branding/finishing on progressive content, so it can end up with 1 hours of pure progressive content with 3x period of 10s where an interlaced title appear or disappear in a corner... This is why deinterlacing filters are both so useful and so tricky.
IIRC there was/are some bitstream filters that can change stored flags at bitstream level.
Yes but none that can currently manipulate the scan type of the video. It's not 100% clear to me if it's at all possible or not but currently there does not seem to be a simple fix to the problem without re-encoding....unless some smart developer says otherwise. -steinar
As the title says, is this at all possible? My concern is mostly with mpeg2 and h264 that have content of one type but encoded/marked as another. In a general manner, amongst other things, interlaced encoding involves interlaced DCT, so this is not possible because it is not a simple "mark". In some very limited scenarios, it is possible to tag interlaced content as progressive-segmented frame (PsF). Take mpeg2/h264: I have never seen any implementation (neither encoder or decoder) of the flags that actually allow to mark progressive content, so PsF is pure theory here. So today, for example, only "progressive sequence" mpeg2 is considered progressive : you have to transcode.
Most notably content that has progressive video but stored interlaced. "encoded" rather than "stored", but yes, it is indeed very commonplace. Nevertheless, be very very carefull, it is also very very commonplace to have interlaced branding/finishing on progressive content, so it can end up with 1 hours of pure progressive content with 3x period of 10s where an interlaced title appear or disappear in a corner... This is why deinterlacing filters are both so useful and so tricky.
I'm all aware of the implications, just need to explore the possibility to change scan type without re-encoding. Currently it does not seem to be a "simple" solution to the problem. -steinar
participants (4)
-
Bouke (Edit 'B) -
Nicolas Gaullier -
Paul B Mahol -
Steinar Apalnes