Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#7025 closed defect (fixed)

Framerate changes when using prores and copy codec

Reported by: FrugalCourtland Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mov prores
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

Framerate changes when using the "copy" command with a prores video, when the length of the video doesn't land on a clean second boundary. In this example, the input video is 4 frames. FFProbe will show the framerate at 30 fps, but after copying, the framerate changes to slightly less than 30.

How to reproduce:

% ffprobe input.mov

Stream #0:0(eng): Video: prores (apcn / 0x6E637061), yuv422p10le(progressive), 100x62, 92 kb/s, SAR 1:1 DAR 50:31, 30 fps, 30 tbr, 15360 tbn, 15360 tbc (default)

% ffmpeg -i input.mov -c:v copy output.mov
% ffprobe output.mov

Stream #0:0(eng): Video: prores (ap4h / 0x68347061), yuv444p10le(progressive), 100x62, 91 kb/s, SAR 1:1 DAR 50:31, 29.85 fps, 30 tbr, 15360 tbn, 15360 tbc (default)

ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
ffprobe version 3.4.1 Copyright (c) 2007-2017 the FFmpeg developers
  built with gcc 7.2.0 (GCC)

The video was originally created with this command:

% ffmpeg -framerate 30 -i %02d.png -codec prores input.mov

Attachments (2)

input.mov (2.3 KB ) - added by FrugalCourtland 6 years ago.
ProRes Input File
output.mov (2.3 KB ) - added by FrugalCourtland 6 years ago.
Output File with incorrect framerate

Download all attachments as: .zip

Change History (6)

by FrugalCourtland, 6 years ago

Attachment: input.mov added

ProRes Input File

by FrugalCourtland, 6 years ago

Attachment: output.mov added

Output File with incorrect framerate

comment:1 by Gyan, 6 years ago

Related to duration of last frame. In the input, ffprobe shows it as longer than the other frames.

Round-tripping via a NUT pipe works

ffmpeg -i input.mov -c copy -f nut - | ffmpeg -i - -c copy output.mov

in reply to:  1 comment:2 by FrugalCourtland, 6 years ago

Replying to Gyan:

Related to duration of last frame. In the input, ffprobe shows it as longer than the other frames.

Thank you so much for taking a look and replying here! We will give that workaround a try. I will also file another ticket for the encode process that's creating the long last frame.

comment:3 by Elon Musk, 5 years ago

Resolution: fixed
Status: newclosed

Can not reproduce anymore.

comment:4 by Carl Eugen Hoyos, 5 years ago

Component: undeterminedavformat
Keywords: mov prores added
Version: git-master
Note: See TracTickets for help on using tickets.