matroska-specification icon indicating copy to clipboard operation
matroska-specification copied to clipboard

add ability to mark video as repeating every 4th frame?

Open sjpotter opened this issue 2 years ago • 2 comments

One thing that I've seen on a lot of video is that 24fps content is encoded as 30fps content by simply repeating every 4th frame. This results in judder on playback.

Would it be interesting / in scope to be able to specify metadata for a video track that can tell a player that it can (if it wants) drop every 5th frame and treat the content video fps as fps*(4/5) (i.e. 30fps content becomes 24, 29.97 becomes 23.976). The content would still be encoded as every 5th frame repeating every 4th frame, but by packaging it into an matroska container can provide better information to player on how to play it optimally (if player is so capable).

sjpotter avatar May 13 '22 08:05 sjpotter

That information is normally stored at the codec level as a "repeat" field. In FFmpeg the codecs that have such repeat_pict information are

  • MPEG2
  • H264
  • HEVC
  • VC1

Transcoding these to other codecs would lose that information, so it would good to keep at the container level, indeed.

robUx4 avatar May 15 '22 05:05 robUx4

so encountered content like this again, so wrote a ticket again, forgetting that I had already filed it previously. I'd note that the content I'm dealing with is h264 and doesn't seem to have the "repeat" flag set. I'm wondering if there be a way to add it lossesly to the video stream? Right now by solution is to transcode with ffmpeg (decimate filter), but that's not a great solution.

sjpotter avatar Feb 03 '23 13:02 sjpotter