#8909 closed defect (invalid)
Copying an AV1 stream from an MKV container to an MP4 container changes the reported framerate
Reported by: | veikk0 | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | git-master | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug: Copying some AV1 streams from an MKV container to an MP4 container changes the reported framerate and changes it from CFR to VFR.
How to reproduce:
Download the Sintel trailer, encode 10 seconds of it in AV1, print fps with ffprobe:
wget https://download.blender.org/durian/trailer/sintel_trailer-480p.mp4 && ffmpeg -i sintel_trailer-480p.mp4 -an -c:v libsvtav1 -t 10 -preset 8 sintel.mkv && ffprobe -v error -select_streams v:0 -show_entries stream=avg_frame_rate -of default=noprint_wrappers=1:nokey=1 sintel.mkv
Frame rate is the same as the source (24/1).
Now to copy the freshly encoded video stream from the Matroska container to an MP4 container, and check out the frame rate:
ffmpeg -i sintel.mkv -c:v copy sintel.mp4 && ffprobe -v error -select_streams v:0 -show_entries stream=avg_frame_rate -of default=noprint_wrappers=1:nokey=1 sintel.mp4
It has changed to 80000/3333. Furthermore, the mediainfo program will now report that the file is variable frame rate instead of constant (not sure how to check this with ffprobe).
Version info:
ffmpeg version N-99352-gd8ce8e8 built with gcc 8 (Ubuntu 8.4.0-1ubuntu1~18.04)
If your FFmpeg isn't built with SVT-AV1 or libaom, I was also able to reproduce the issue by copying an existing AV1 file not authored with FFmpeg (as far as I know): http://download.opencontent.netflix.com.s3.amazonaws.com/AV1/Chimera/Old/Chimera-AV1-8bit-1920x1080-6736kbps.mp4. Copy video stream to an MKV, then copy that stream to an MP4. Same issue.
The issue doesn't seem to crop up when going from other containers to an MP4, or when encoding directly to an MP4. Seems like this is specific to Matroska.
Attachments (4)
Change History (9)
comment:1 by , 4 years ago
Keywords: | AV1 MKV MP4 Matroska fps removed |
---|
by , 4 years ago
Attachment: | 2-sintel-mp4-creation.txt added |
---|
CLI output when creating the problematic MP4 file from previously created MKV
comment:2 by , 4 years ago
Complete CLI output of the two FFmpeg commands – including the commands themselves – are now attached as separate text files.
Input sample file (sintel_trailer-480p.mp4) is already provided in the first "how to reproduce" cli. It's larger than the attachment size limit, so I'm instructing to download it directly from Blender's download server with wget. However, if this suddenly becomes unreachable, the other sample file linked to at the end of the ticket also works, and without the need to encode to AV1 yourself; only copying it to an MKV container and then to and MP4 container also reproduces the issue.
AFAIK any input file with a constant frame rate should work when you're creating the AV1 file yourself with the commands provided.
edit: I'm also attaching the resulting MKV and MP4 files, for easier diagnosis and in case recreating them becomes a problem.
by , 4 years ago
Attachment: | sintel.mkv added |
---|
MKV file from which copying the AV1 stream to an MP4 container is an issue
by , 4 years ago
Attachment: | sintel.mp4 added |
---|
MP4 file which exhibits the frame rate problem after the AV1 stream was copied from the MKV file
comment:3 by , 3 years ago
This happens because your original sintel.mkv is recognized as VFR by ffmpeg.
ffmpeg -i sintel.mkv -vf vfrdet -an -f null -
I doubt it is true and it is a bug in mkv parser. Should be, at least, see https://trac.ffmpeg.org/ticket/4768#comment:13
We can close #9124, because
Frame rate mode : Variable Frame rate : 24.000 FPS Minimum frame rate : 23.810 FPS Maximum frame rate : 24.390 FPS
is like that on that file too. Maximum frame rate especially.
follow-up: 5 comment:4 by , 3 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
I doubt that this can be improved.
comment:5 by , 3 years ago
Replying to cehoyos:
I doubt that this can be improved.
Let me quote again:
Just for the record the H264 spec (Annex C) and the MPEG-TS spec does cover the case of rounded timestamps. Blu-Ray files are still CFR irrespective of the precision of the timestamps.
Please provide the command line and the complete, uncut console output of the command line that you tested and please provide the input sample to make this a valid ticket.