#443 closed defect (fixed)
-color_range AVOption appears to do nothing
Reported by: | TimNich | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | documentation |
Version: | git-master | Keywords: | h264 |
Cc: | Michael Niedermayer | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
according to source -color_range <int> can take the following values:-
"0" auto
"1" 16-235
"2" 0-255
and it functions on encode and decode. However altering the option value appears to make no change to the way media is processed, either on input, or output.
Attached stills sources and script to generate outputs using variations in value attached.
Attachments (3)
Change History (16)
by , 13 years ago
Attachment: | bars-601.png added |
---|
by , 13 years ago
Attachment: | still2mov.sh added |
---|
script to generate outputs using varying values of -color_range
comment:1 by , 13 years ago
Viewing the resultant clips using the waveform monitor in kdenlive shows all 601 source permutations the same, and all rgb permutations the same, with the two batches differing by the level differences in the original file.
comment:2 by , 13 years ago
Is this reproducible with current git head? Also, please show your complete, uncut ffmpeg output.
comment:3 by , 13 years ago
Still the same with as near current as I can keep up with.:-
> tux-scripts/still2mov.sh bars-rgb.png ffmpeg version N-32542-g3867035-by_Tim, Copyright (c) 2000-2011 the FFmpeg developers built on Sep 13 2011 08:59:23 with gcc 4.5.1 20101208 [gcc-4_5-branch revision 167585] configuration: --prefix=/usr/local --shlibdir=/usr/local/lib64 --libdir=/usr/local/lib64 --mandir=/usr/local/man --incdir=/usr/local/include --extra-version=by_Tim --enable-gpl --enable-nonfree --enable-version3 --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-libvpx --enable-libx264 --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdirac --enable-libschroedinger --enable-libmp3lame --enable-libfaac --enable-libtheora --enable-libvorbis --enable-libfreetype --enable-filter=drawtext --enable-static --disable-shared libavutil 51. 16. 0 / 51. 16. 0 libavcodec 53. 13. 0 / 53. 13. 0 libavformat 53. 12. 0 / 53. 12. 0 libavdevice 53. 3. 0 / 53. 3. 0 libavfilter 2. 40. 0 / 2. 40. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 [image2 @ 0x1317b00] max_analyze_duration 5000000 reached at 5000000 Input #0, image2, from 'bars-rgb.png': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0.0, 127, 1/25: Video: png, rgb24, 720x576, 1/25, 25 fps, 25 tbr, 25 tbn, 25 tbc [buffer @ 0x1317a80] w:720 h:576 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param: [buffersink @ 0x131d360] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out' [scale @ 0x1318060] w:720 h:576 fmt:rgb24 -> w:720 h:576 fmt:uyvy422 flags:0x4 Output #0, avi, to 'bars-rgb.0.avi': Metadata: ISFT : Lavf53.12.0 Stream #0.0, 0, 1/25: Video: rawvideo (2vuy / 0x79757632), uyvy422, 720x576, 1/25, q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream mapping: Stream #0.0 -> #0.0 (png -> rawvideo) Press [q] to stop, [?] for help frame= 125 fps= 39 q=0.0 Lsize= 101258kB time=00:00:05.00 bitrate=165901.9kbits/s video:101250kB audio:0kB global headers:0kB muxing overhead 0.008372% ffmpeg version N-32542-g3867035-by_Tim, Copyright (c) 2000-2011 the FFmpeg developers built on Sep 13 2011 08:59:23 with gcc 4.5.1 20101208 [gcc-4_5-branch revision 167585] configuration: --prefix=/usr/local --shlibdir=/usr/local/lib64 --libdir=/usr/local/lib64 --mandir=/usr/local/man --incdir=/usr/local/include --extra-version=by_Tim --enable-gpl --enable-nonfree --enable-version3 --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-libvpx --enable-libx264 --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdirac --enable-libschroedinger --enable-libmp3lame --enable-libfaac --enable-libtheora --enable-libvorbis --enable-libfreetype --enable-filter=drawtext --enable-static --disable-shared libavutil 51. 16. 0 / 51. 16. 0 libavcodec 53. 13. 0 / 53. 13. 0 libavformat 53. 12. 0 / 53. 12. 0 libavdevice 53. 3. 0 / 53. 3. 0 libavfilter 2. 40. 0 / 2. 40. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 [image2 @ 0x1317cc0] max_analyze_duration 5000000 reached at 5000000 Input #0, image2, from 'bars-rgb.png': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0.0, 127, 1/25: Video: png, rgb24, 720x576, 1/25, 25 fps, 25 tbr, 25 tbn, 25 tbc [buffer @ 0x1317b60] w:720 h:576 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param: [buffersink @ 0x131d740] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out' [scale @ 0x131b1a0] w:720 h:576 fmt:rgb24 -> w:720 h:576 fmt:uyvy422 flags:0x4 Output #0, avi, to '0.bars-rgb.avi': Metadata: ISFT : Lavf53.12.0 Stream #0.0, 0, 1/25: Video: rawvideo (2vuy / 0x79757632), uyvy422, 720x576, 1/25, q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream mapping: Stream #0.0 -> #0.0 (png -> rawvideo) Press [q] to stop, [?] for help frame= 125 fps= 37 q=0.0 Lsize= 101258kB time=00:00:05.00 bitrate=165901.9kbits/s video:101250kB audio:0kB global headers:0kB muxing overhead 0.008372% ffmpeg version N-32542-g3867035-by_Tim, Copyright (c) 2000-2011 the FFmpeg developers built on Sep 13 2011 08:59:23 with gcc 4.5.1 20101208 [gcc-4_5-branch revision 167585] configuration: --prefix=/usr/local --shlibdir=/usr/local/lib64 --libdir=/usr/local/lib64 --mandir=/usr/local/man --incdir=/usr/local/include --extra-version=by_Tim --enable-gpl --enable-nonfree --enable-version3 --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-libvpx --enable-libx264 --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdirac --enable-libschroedinger --enable-libmp3lame --enable-libfaac --enable-libtheora --enable-libvorbis --enable-libfreetype --enable-filter=drawtext --enable-static --disable-shared libavutil 51. 16. 0 / 51. 16. 0 libavcodec 53. 13. 0 / 53. 13. 0 libavformat 53. 12. 0 / 53. 12. 0 libavdevice 53. 3. 0 / 53. 3. 0 libavfilter 2. 40. 0 / 2. 40. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 [image2 @ 0x1317b00] max_analyze_duration 5000000 reached at 5000000 Input #0, image2, from 'bars-rgb.png': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0.0, 127, 1/25: Video: png, rgb24, 720x576, 1/25, 25 fps, 25 tbr, 25 tbn, 25 tbc [buffer @ 0x1317a80] w:720 h:576 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param: [buffersink @ 0x131d360] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out' [scale @ 0x1318060] w:720 h:576 fmt:rgb24 -> w:720 h:576 fmt:uyvy422 flags:0x4 Output #0, avi, to 'bars-rgb.1.avi': Metadata: ISFT : Lavf53.12.0 Stream #0.0, 0, 1/25: Video: rawvideo (2vuy / 0x79757632), uyvy422, 720x576, 1/25, q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream mapping: Stream #0.0 -> #0.0 (png -> rawvideo) Press [q] to stop, [?] for help frame= 125 fps= 40 q=0.0 Lsize= 101258kB time=00:00:05.00 bitrate=165901.9kbits/s video:101250kB audio:0kB global headers:0kB muxing overhead 0.008372% ffmpeg version N-32542-g3867035-by_Tim, Copyright (c) 2000-2011 the FFmpeg developers built on Sep 13 2011 08:59:23 with gcc 4.5.1 20101208 [gcc-4_5-branch revision 167585] configuration: --prefix=/usr/local --shlibdir=/usr/local/lib64 --libdir=/usr/local/lib64 --mandir=/usr/local/man --incdir=/usr/local/include --extra-version=by_Tim --enable-gpl --enable-nonfree --enable-version3 --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-libvpx --enable-libx264 --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdirac --enable-libschroedinger --enable-libmp3lame --enable-libfaac --enable-libtheora --enable-libvorbis --enable-libfreetype --enable-filter=drawtext --enable-static --disable-shared libavutil 51. 16. 0 / 51. 16. 0 libavcodec 53. 13. 0 / 53. 13. 0 libavformat 53. 12. 0 / 53. 12. 0 libavdevice 53. 3. 0 / 53. 3. 0 libavfilter 2. 40. 0 / 2. 40. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 [image2 @ 0x1317cc0] max_analyze_duration 5000000 reached at 5000000 Input #0, image2, from 'bars-rgb.png': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0.0, 127, 1/25: Video: png, rgb24, 720x576, 1/25, 25 fps, 25 tbr, 25 tbn, 25 tbc [buffer @ 0x1317b60] w:720 h:576 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param: [buffersink @ 0x131d740] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out' [scale @ 0x131b1a0] w:720 h:576 fmt:rgb24 -> w:720 h:576 fmt:uyvy422 flags:0x4 Output #0, avi, to '1.bars-rgb.avi': Metadata: ISFT : Lavf53.12.0 Stream #0.0, 0, 1/25: Video: rawvideo (2vuy / 0x79757632), uyvy422, 720x576, 1/25, q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream mapping: Stream #0.0 -> #0.0 (png -> rawvideo) Press [q] to stop, [?] for help frame= 125 fps= 40 q=0.0 Lsize= 101258kB time=00:00:05.00 bitrate=165901.9kbits/s video:101250kB audio:0kB global headers:0kB muxing overhead 0.008372% ffmpeg version N-32542-g3867035-by_Tim, Copyright (c) 2000-2011 the FFmpeg developers built on Sep 13 2011 08:59:23 with gcc 4.5.1 20101208 [gcc-4_5-branch revision 167585] configuration: --prefix=/usr/local --shlibdir=/usr/local/lib64 --libdir=/usr/local/lib64 --mandir=/usr/local/man --incdir=/usr/local/include --extra-version=by_Tim --enable-gpl --enable-nonfree --enable-version3 --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-libvpx --enable-libx264 --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdirac --enable-libschroedinger --enable-libmp3lame --enable-libfaac --enable-libtheora --enable-libvorbis --enable-libfreetype --enable-filter=drawtext --enable-static --disable-shared libavutil 51. 16. 0 / 51. 16. 0 libavcodec 53. 13. 0 / 53. 13. 0 libavformat 53. 12. 0 / 53. 12. 0 libavdevice 53. 3. 0 / 53. 3. 0 libavfilter 2. 40. 0 / 2. 40. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 [image2 @ 0x1317b00] max_analyze_duration 5000000 reached at 5000000 Input #0, image2, from 'bars-rgb.png': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0.0, 127, 1/25: Video: png, rgb24, 720x576, 1/25, 25 fps, 25 tbr, 25 tbn, 25 tbc [buffer @ 0x1317a80] w:720 h:576 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param: [buffersink @ 0x131d360] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out' [scale @ 0x1318060] w:720 h:576 fmt:rgb24 -> w:720 h:576 fmt:uyvy422 flags:0x4 Output #0, avi, to 'bars-rgb.2.avi': Metadata: ISFT : Lavf53.12.0 Stream #0.0, 0, 1/25: Video: rawvideo (2vuy / 0x79757632), uyvy422, 720x576, 1/25, q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream mapping: Stream #0.0 -> #0.0 (png -> rawvideo) Press [q] to stop, [?] for help frame= 125 fps= 37 q=0.0 Lsize= 101258kB time=00:00:05.00 bitrate=165901.9kbits/s video:101250kB audio:0kB global headers:0kB muxing overhead 0.008372% ffmpeg version N-32542-g3867035-by_Tim, Copyright (c) 2000-2011 the FFmpeg developers built on Sep 13 2011 08:59:23 with gcc 4.5.1 20101208 [gcc-4_5-branch revision 167585] configuration: --prefix=/usr/local --shlibdir=/usr/local/lib64 --libdir=/usr/local/lib64 --mandir=/usr/local/man --incdir=/usr/local/include --extra-version=by_Tim --enable-gpl --enable-nonfree --enable-version3 --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-libvpx --enable-libx264 --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdirac --enable-libschroedinger --enable-libmp3lame --enable-libfaac --enable-libtheora --enable-libvorbis --enable-libfreetype --enable-filter=drawtext --enable-static --disable-shared libavutil 51. 16. 0 / 51. 16. 0 libavcodec 53. 13. 0 / 53. 13. 0 libavformat 53. 12. 0 / 53. 12. 0 libavdevice 53. 3. 0 / 53. 3. 0 libavfilter 2. 40. 0 / 2. 40. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 [image2 @ 0x1317cc0] max_analyze_duration 5000000 reached at 5000000 Input #0, image2, from 'bars-rgb.png': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0.0, 127, 1/25: Video: png, rgb24, 720x576, 1/25, 25 fps, 25 tbr, 25 tbn, 25 tbc [buffer @ 0x1317b60] w:720 h:576 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param: [buffersink @ 0x131d740] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out' [scale @ 0x131b1a0] w:720 h:576 fmt:rgb24 -> w:720 h:576 fmt:uyvy422 flags:0x4 Output #0, avi, to '2.bars-rgb.avi': Metadata: ISFT : Lavf53.12.0 Stream #0.0, 0, 1/25: Video: rawvideo (2vuy / 0x79757632), uyvy422, 720x576, 1/25, q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream mapping: Stream #0.0 -> #0.0 (png -> rawvideo) Press [q] to stop, [?] for help frame= 125 fps= 40 q=0.0 Lsize= 101258kB time=00:00:05.00 bitrate=165901.9kbits/s video:101250kB audio:0kB global headers:0kB muxing overhead 0.008372
follow-up: 5 comment:4 by , 12 years ago
Keywords: | h264 added |
---|---|
Status: | new → open |
Version: | git → git-master |
color_range is an input option that allows you to force a colour range for h264 input.
Unfortunately, this is not what the documentation of the field in avcodec.h explains...
I am not sure if this a documentation bug or if the h264 decoder has a problem.
follow-up: 6 comment:5 by , 12 years ago
Replying to cehoyos:
color_range is an input option that allows you to force a colour range for h264 input.
Unfortunately, this is not what the documentation of the field in avcodec.h explains...
I am not sure if this a documentation bug or if the h264 decoder has a problem.
Well if its only an input option for H264 material it may only be a documentation bug as this is not how I tested it it! (Being in avcodec.h and with the current documentation it appeared to have a wider scope so I tried with non H264 source and also on output)
Is this limitation to H264 input something you just happened to know, or is it documented elsewhere?
follow-up: 7 comment:6 by , 12 years ago
Replying to nichot20:
Is this limitation to H264 input something you just happened to know, or is it documented elsewhere?
Neither.
I searched the source for an actual use case;-)
comment:7 by , 12 years ago
Replying to cehoyos:
Replying to nichot20:
Is this limitation to H264 input something you just happened to know, or is it documented elsewhere?
Neither.
I searched the source for an actual use case;-)
It would be good if it were of wider application, but in the meantime a documentation patch would help remove unwarranted expectations.
comment:8 by , 12 years ago
Component: | undetermined → documentation |
---|
This option needs clarification.
comment:9 by , 9 years ago
Cc: | added |
---|
comment:10 by , 4 years ago
This is just metadata. There are a lot of ways to set range besides VUI.
comment:11 by , 2 years ago
In fact as output option it does work:
ffmpeg.exe -i 49996_PID_1015.265 -map 0:v:0 -frames:v 1 -cpu-used 0 -crf 0 -color_range 2 dqewdq1212.avif
will create otherwise bitperfect file (2 bytes difference of range metadata) with full range even though the input is limited.
Same DOES not happen with input option. Also see https://trac.ffmpeg.org/ticket/3326#comment:3
comment:12 by , 23 months ago
comment:13 by , 20 months ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
Should be fixed in commit 26eb3129df.
16-235 range image