Opened 15 years ago
Closed 11 years ago
#351 closed enhancement (fixed)
Make Matroska cluster size configurable
| Reported by: | dave rice | Owned by: | |
|---|---|---|---|
| Priority: | wish | Component: | avformat |
| Version: | git-master | Keywords: | mkv |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
When using '-vcodec ffv1 outfile.mkv', I use mkvalidator to check the resulting file which lists warnings for every cluster.
Making a ffv1 in mkv: http://pastebin.com/dhAHLpvc
Warnings from mkvalidator that first frame is cluster is not keyframe: http://pastebin.com/TJHtaAvY (aren't all ffv1 frames keyframes)
Same file in mkvtree: http://pastebin.com/cZ3bjF7M
Change History (9)
comment:2 by , 15 years ago
ffmpeg -i 0011TS.mov -vcodec ffv1 -an 0011TS.mkv
ffmpeg version git-N-30446-g06a9da7, Copyright (c) 2000-2011 the FFmpeg developers
built on Jul 14 2011 17:46:08 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
configuration: --prefix=/packages/ffmpeg-head/runtime --enable-static --disable-shared --enable-postproc --enable-nonfree --enable-libx264 --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libxvid --enable-libvorbis --enable-libgsm --enable-libvpx --enable-avfilter --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libfreetype --disable-ffplay --disable-ffserver --disable-ffprobe --disable-network --disable-devices --disable-doc --extra-cflags=--static --extra-ldflags= --bindir=/packages/ffmpeg-head/dist/bin --incdir=/packages/ffmpeg-head/dist/include --libdir=/packages/ffmpeg-head/dist/lib --prefix=/usr/local --enable-runtime-cpudetect
libavutil 51. 3. 0 / 51. 3. 0
libavcodec 53. 6. 1 / 53. 6. 1
libavformat 53. 2. 0 / 53. 2. 0
libavdevice 53. 1. 0 / 53. 1. 0
libavfilter 2. 11. 0 / 2. 11. 0
libswscale 0. 14. 0 / 0. 14. 0
libpostproc 51. 2. 0 / 51. 2. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x101807c00] Unimplemented container channel layout.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x101807c00] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/MPlayer/incoming/ and contact the ffmpeg-devel mailing list.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x101807c00] Unimplemented container channel layout.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x101807c00] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/MPlayer/incoming/ and contact the ffmpeg-devel mailing list.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x101807c00] Unimplemented container channel layout.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x101807c00] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/MPlayer/incoming/ and contact the ffmpeg-devel mailing list.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x101807c00] Unimplemented container channel layout.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x101807c00] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/MPlayer/incoming/ and contact the ffmpeg-devel mailing list.
Seems stream 0 codec frame rate differs from container frame rate: 29.97 (30000/1001) -> 29.97 (2997/100)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '0011TS.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2009-06-10 22:51:08
Duration: 00:00:02.60, start: 0.000000, bitrate: 118341 kb/s
Stream #0.0(eng): Video: dvvideo, yuv422p, 1280x1080 [PAR 3:2 DAR 16:9], 115084 kb/s, 29.97 fps, 29.97 tbr, 2997 tbn, 29.97 tbc
Metadata:
creation_time : 2009-06-10 22:51:08
Stream #0.1(eng): Audio: pcm_s16le, 48000 Hz, 1 channels, s16, 768 kb/s
Metadata:
creation_time : 2009-06-10 22:51:08
Stream #0.2(eng): Audio: pcm_s16le, 48000 Hz, 1 channels, s16, 768 kb/s
Metadata:
creation_time : 2009-06-10 22:51:08
Stream #0.3(eng): Audio: pcm_s16le, 48000 Hz, 1 channels, s16, 768 kb/s
Metadata:
creation_time : 2009-06-10 22:51:08
Stream #0.4(eng): Audio: pcm_s16le, 48000 Hz, 1 channels, s16, 768 kb/s
Metadata:
creation_time : 2009-06-10 22:51:08
Stream #0.5(eng): Data: tmcd / 0x64636D74, 0 kb/s
Metadata:
creation_time : 2009-06-10 22:51:08
[buffer @ 0x101505a80] w:1280 h:1080 pixfmt:yuv422p tb:1/1000000 sar:3/2 sws_param:
Output #0, matroska, to '0011TS.mkv':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2009-06-10 22:51:08
encoder : Lavf53.2.0
Stream #0.0(eng): Video: ffv1, yuv422p, 1280x1080 [PAR 3:2 DAR 16:9], q=2-31, 200 kb/s, 1k tbn, 29.97 tbc
Metadata:
creation_time : 2009-06-10 22:51:08
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
frame= 78 fps= 5 q=0.0 Lsize= 54037kB time=2.60 bitrate=170061.7kbits/s
video:54035kB audio:0kB global headers:0kB muxing overhead 0.003204%
comment:4 by , 15 years ago
I probably shouldn't (not my file), but I think this occurs on any file. Perhaps I can produce one with the new testsrc filter.
follow-up: 6 comment:5 by , 15 years ago
aren't all ffv1 frames keyframes
No, they depend on the arithmetic coding state of previous frames unless you use -g 1.
The matroska encoder opens a new cluster at the latest after 5 MB of data. Since your ffv1 frames are very large it can't do that without creating some clusters without keyframes.
This could probably be improved/made configurable in the muxer, but those are only warnings after all.
comment:6 by , 15 years ago
Replying to reimar:
aren't all ffv1 frames keyframes
No, they depend on the arithmetic coding state of previous frames unless you use -g 1.
The matroska encoder opens a new cluster at the latest after 5 MB of data. Since your ffv1 frames are very large it can't do that without creating some clusters without keyframes.
This could probably be improved/made configurable in the muxer, but those are only warnings after all.
Thanks for the explanation of the 5MB limit. For now, I'll look into using '-g 1' or 'mkclean --remux' on the result.
comment:7 by , 15 years ago
| Component: | undetermined → avformat |
|---|---|
| Keywords: | ffv1 mkv mkvalidator removed |
| Priority: | normal → wish |
| Summary: | ffv1 frames are not marked as keyframes in mkv → Make Matroska cluster size configurable |
| Type: | defect → enhancement |
| Version: | unspecified → git-master |
comment:8 by , 15 years ago
| Keywords: | mkv added; matroska removed |
|---|
comment:9 by , 11 years ago
| Resolution: | → fixed |
|---|---|
| Status: | open → closed |
I believe this was implemented by Luca in 2013 and merged in ac957bc6


