[FFmpeg-trac] #9693(avcodec:open): change of matrix cannot happen on full range
FFmpeg
trac at avcodec.org
Thu Dec 26 22:14:06 EET 2024
#9693: change of matrix cannot happen on full range
------------------------------------+------------------------------------
Reporter: Balling | Owner: martin@…
Type: defect | Status: open
Priority: normal | Component: avcodec
Version: git-master | Resolution:
Keywords: scale | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
------------------------------------+------------------------------------
Description changed by Balling:
Old description:
> Summary of the bug:
>
> I have BT.709 sample that I want to do a jpeg image from, yet because
> std-complient jpeg is only bt.601 full range and thus the change of
> matrix must occur it just sees hevc video as bt.601 full range and does a
> no-op! Does not happen in png (remove gAMA from png). So apparently
> c523724c693ee031d8b5351aff6232a1f7d86876 was not enough!
> How to reproduce:
> {{{
> PS C:\Users\xxxx>ffmpeg.exe -i "this one does it.mp4" -frames:v 1 -q:v 1
> 318281.jpg
> ffmpeg version N-106352-g2a1eae2179-20220319 Copyright (c) 2000-2022 the
> FFmpeg developers
> built with gcc 11.2.0 (crosstool-NG 1.24.0.533_681aaef)
> configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
> --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
> --target-os=mingw32 --enable-version3 --disable-debug --enable-shared
> --disable-static --disable-w32threads --enable-pthreads --enable-iconv
> --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi
> --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis
> --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb
> --disable-xlib --enable-amf --enable-libaom --disable-avisynth --enable-
> libdav1d --disable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec
> --enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libass
> --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librist
> --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2
> --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb
> --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-
> librav1e --disable-librubberband --enable-schannel --enable-sdl2
> --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame
> --enable-libuavs3d --disable-libdrm --disable-vaapi --disable-libvidstab
> --enable-vulkan --enable-libshaderc --enable-libplacebo --disable-libx264
> --disable-libx265 --disable-libxavs2 --disable-libxvid --enable-libzimg
> --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags=
> --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-
> version=20220319
> libavutil 57. 24.101 / 57. 24.101
> libavcodec 59. 25.100 / 59. 25.100
> libavformat 59. 20.101 / 59. 20.101
> libavdevice 59. 6.100 / 59. 6.100
> libavfilter 8. 29.100 / 8. 29.100
> libswscale 6. 6.100 / 6. 6.100
> libswresample 4. 6.100 / 4. 6.100
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'this one does it.mp4':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> creation_time : 2021-07-05T19:03:03.000000Z
> com.apple.quicktime.description: [{"rParams":"2560000,{1080,
> 1920}","appRecord":"1","videoIndex":"1","userDevice":"iPhone11,8","userSystem":"14.2"}]
> com.apple.quicktime.software:
> {"TEEditor":"1"},{"isFastImport":"0"},{"transType":"2"},{"source":"1"}
> com.apple.quicktime.copyright: ba465c12a45eb7a886ad4f22aa7710b6
> Duration: 00:00:07.03, start: 0.000000, bitrate: 4004 kb/s
> Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
> stereo, fltp, 132 kb/s (default)
> Metadata:
> creation_time : 2021-07-05T19:03:03.000000Z
> handler_name : Core Media Audio
> vendor_id : [0][0][0][0]
> Stream #0:1[0x2](und): Video: hevc (Main) (hvc1 / 0x31637668),
> yuvj420p(pc, bt709), 720x1280, 3864 kb/s, 29.01 fps, 29 tbr, 600 tbn
> (default)
> Metadata:
> creation_time : 2021-07-05T19:03:03.000000Z
> handler_name : Core Media Video
> vendor_id : [0][0][0][0]
> encoder : HEVC
> Stream mapping:
> Stream #0:1 -> #0:0 (hevc (native) -> mjpeg (native))
> Press [q] to stop, [?] for help
> Output #0, image2, to '318281.jpg':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> com.apple.quicktime.copyright: ba465c12a45eb7a886ad4f22aa7710b6
> com.apple.quicktime.description: [{"rParams":"2560000,{1080,
> 1920}","appRecord":"1","videoIndex":"1","userDevice":"iPhone11,8","userSystem":"14.2"}]
> com.apple.quicktime.software:
> {"TEEditor":"1"},{"isFastImport":"0"},{"transType":"2"},{"source":"1"}
> encoder : Lavf59.20.101
> Stream #0:0(und): Video: mjpeg, yuvj420p(pc, bt709, progressive),
> 720x1280, q=2-31, 200 kb/s, 29 fps, 29 tbn (default)
> Metadata:
> creation_time : 2021-07-05T19:03:03.000000Z
> handler_name : Core Media Video
> vendor_id : [0][0][0][0]
> encoder : Lavc59.25.100 mjpeg
> Side data:
> cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
> frame= 1 fps=0.0 q=1.0 Lsize=N/A time=00:00:00.03 bitrate=N/A
> speed=0.229x
> video:105kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
> muxing overhead: unknown
> }}}
>
> The sample is here:
> https://mega.nz/folder/5EMWDDrS#MlG_UA9CHvG633ldHvmnTQ/folder/tQtm0TpB
>
> The downupstream issue is here
> https://github.com/n00mkrad/flowframes/issues/84
> zscale is affected too, forcing -vf scale does not work.
>
> Patches should be submitted to the ffmpeg-devel mailing list and not this
> bug tracker.
New description:
Summary of the bug:
I have BT.709 sample that I want to do a jpeg image from, yet because std-
complient jpeg is only bt.601 full range and thus the change of matrix
must occur it just sees hevc video as bt.601 full range and does a no-op!
Does not happen in png (remove gAMA from png). So apparently
c523724c693ee031d8b5351aff6232a1f7d86876 was not enough!
How to reproduce:
{{{
PS C:\Users\xxxx>ffmpeg.exe -i "this one does it.mp4" -frames:v 1 -q:v 1
318281.jpg
ffmpeg version N-106352-g2a1eae2179-20220319 Copyright (c) 2000-2022 the
FFmpeg developers
built with gcc 11.2.0 (crosstool-NG 1.24.0.533_681aaef)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
--pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
--target-os=mingw32 --enable-version3 --disable-debug --enable-shared
--disable-static --disable-w32threads --enable-pthreads --enable-iconv
--enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi
--enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis
--enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb
--disable-xlib --enable-amf --enable-libaom --disable-avisynth --enable-
libdav1d --disable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec
--enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libass
--enable-libbluray --enable-libmp3lame --enable-libopus --enable-librist
--enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-
libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e
--disable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr
--enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d
--disable-libdrm --disable-vaapi --disable-libvidstab --enable-vulkan
--enable-libshaderc --enable-libplacebo --disable-libx264 --disable-
libx265 --disable-libxavs2 --disable-libxvid --enable-libzimg --enable-
libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-
ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-
version=20220319
libavutil 57. 24.101 / 57. 24.101
libavcodec 59. 25.100 / 59. 25.100
libavformat 59. 20.101 / 59. 20.101
libavdevice 59. 6.100 / 59. 6.100
libavfilter 8. 29.100 / 8. 29.100
libswscale 6. 6.100 / 6. 6.100
libswresample 4. 6.100 / 4. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'this one does it.mp4':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2021-07-05T19:03:03.000000Z
com.apple.quicktime.description: [{"rParams":"2560000,{1080,
1920}","appRecord":"1","videoIndex":"1","userDevice":"iPhone11,8","userSystem":"14.2"}]
com.apple.quicktime.software:
{"TEEditor":"1"},{"isFastImport":"0"},{"transType":"2"},{"source":"1"}
com.apple.quicktime.copyright: ba465c12a45eb7a886ad4f22aa7710b6
Duration: 00:00:07.03, start: 0.000000, bitrate: 4004 kb/s
Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
stereo, fltp, 132 kb/s (default)
Metadata:
creation_time : 2021-07-05T19:03:03.000000Z
handler_name : Core Media Audio
vendor_id : [0][0][0][0]
Stream #0:1[0x2](und): Video: hevc (Main) (hvc1 / 0x31637668),
yuvj420p(pc, bt709), 720x1280, 3864 kb/s, 29.01 fps, 29 tbr, 600 tbn
(default)
Metadata:
creation_time : 2021-07-05T19:03:03.000000Z
handler_name : Core Media Video
vendor_id : [0][0][0][0]
encoder : HEVC
Stream mapping:
Stream #0:1 -> #0:0 (hevc (native) -> mjpeg (native))
Press [q] to stop, [?] for help
Output #0, image2, to '318281.jpg':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
com.apple.quicktime.copyright: ba465c12a45eb7a886ad4f22aa7710b6
com.apple.quicktime.description: [{"rParams":"2560000,{1080,
1920}","appRecord":"1","videoIndex":"1","userDevice":"iPhone11,8","userSystem":"14.2"}]
com.apple.quicktime.software:
{"TEEditor":"1"},{"isFastImport":"0"},{"transType":"2"},{"source":"1"}
encoder : Lavf59.20.101
Stream #0:0(und): Video: mjpeg, yuvj420p(pc, bt709, progressive),
720x1280, q=2-31, 200 kb/s, 29 fps, 29 tbn (default)
Metadata:
creation_time : 2021-07-05T19:03:03.000000Z
handler_name : Core Media Video
vendor_id : [0][0][0][0]
encoder : Lavc59.25.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame= 1 fps=0.0 q=1.0 Lsize=N/A time=00:00:00.03 bitrate=N/A
speed=0.229x
video:105kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
}}}
The sample is here: https://disk.yandex.ru/i/heY3zwPpDbv-cg
The downupstream issue is here
https://github.com/n00mkrad/flowframes/issues/84
zscale is affected too, forcing -vf scale does not work.
Patches should be submitted to the ffmpeg-devel mailing list and not this
bug tracker.
--
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9693#comment:14>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list