Opened 3 years ago
Last modified 2 years ago
#8735 new defect
videotoolbox causes chroma artifacts in comparison to sw decoding
Reported by: | der_richter | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avcodec |
Version: | git-master | Keywords: | videotoolbox |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
in the following sample, at around 3:16 (as an example), the red rectangle has visible chroma artifacts/aliasing when decoded with videotoolbox.
sample file: https://0x0.st/sDVT.mkv
related mpv issue: https://github.com/mpv-player/mpv/issues/6369
ffmpeg -hwaccel videotoolbox -i "/Volumes/AkemiData/Downloads/ffmpeg_videotoolbox_issues/sDVT.mkv" -f null - ffmpeg version git-2020-06-11-bc8ab084 Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.0 (clang-1100.0.33.12) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-bc8ab08 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=/usr/bin/clang --host-cflags='-Os -w -pipe -march=nehalem -mmacosx-version-min=10.14 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -fno-stack-check' --host-ldflags='-L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/python@3.8/lib -L/usr/local/opt/sqlite/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/openssl@1.1/lib -L/usr/local/lib -F/usr/local/Frameworks -Wl,-headerpad_max_install_names -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk' --enable-ffplay --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-gpl --enable-nonfree --enable-hardcoded-tables --enable-libfdk-aac --enable-libgme --enable-libbs2b --enable-libgsm --enable-libxml2 --enable-openssl --enable-libwavpack --enable-libzmq --enable-libzimg --enable-opencl libavutil 56. 54.100 / 56. 54.100 libavcodec 58. 92.100 / 58. 92.100 libavformat 58. 46.101 / 58. 46.101 libavdevice 58. 11.100 / 58. 11.100 libavfilter 7. 86.100 / 7. 86.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc 55. 8.100 / 55. 8.100 Input #0, matroska,webm, from '/Volumes/AkemiData/Downloads/ffmpeg_videotoolbox_issues/sDVT.mkv': Metadata: encoder : libebml v1.3.5 + libmatroska v1.4.8 creation_time : 2017-11-20T03:32:29.000000Z Duration: 00:06:07.37, start: 0.000000, bitrate: 6643 kb/s Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt709/unknown/unknown), 1920x1080, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default) Metadata: BPS : 5794944 BPS-eng : 5794944 DURATION : 00:06:07.367000000 DURATION-eng : 00:06:07.367000000 NUMBER_OF_FRAMES: 8808 NUMBER_OF_FRAMES-eng: 8808 NUMBER_OF_BYTES : 266108920 NUMBER_OF_BYTES-eng: 266108920 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:1(eng): Audio: flac, 48000 Hz, stereo, s32 (24 bit) (default) Metadata: BPS : 846380 BPS-eng : 846380 DURATION : 00:06:07.365000000 DURATION-eng : 00:06:07.365000000 NUMBER_OF_FRAMES: 4306 NUMBER_OF_FRAMES-eng: 4306 NUMBER_OF_BYTES : 38866300 NUMBER_OF_BYTES-eng: 38866300 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:2: Subtitle: ass (default) Metadata: BPS : 133 BPS-eng : 133 DURATION : 00:05:44.590000000 DURATION-eng : 00:05:44.590000000 NUMBER_OF_FRAMES: 94 NUMBER_OF_FRAMES-eng: 94 NUMBER_OF_BYTES : 5745 NUMBER_OF_BYTES-eng: 5745 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream mapping: Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe (native)) Stream #0:1 -> #0:1 (flac (native) -> pcm_s16le (native)) Press [q] to stop, [?] for help Output #0, null, to 'pipe:': Metadata: encoder : Lavf58.46.101 Stream #0:0: Video: wrapped_avframe, p010le(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc (default) Metadata: BPS : 5794944 BPS-eng : 5794944 DURATION : 00:06:07.367000000 DURATION-eng : 00:06:07.367000000 NUMBER_OF_FRAMES: 8808 NUMBER_OF_FRAMES-eng: 8808 NUMBER_OF_BYTES : 266108920 NUMBER_OF_BYTES-eng: 266108920 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES encoder : Lavc58.92.100 wrapped_avframe Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s (default) Metadata: BPS : 846380 BPS-eng : 846380 DURATION : 00:06:07.365000000 DURATION-eng : 00:06:07.365000000 NUMBER_OF_FRAMES: 4306 NUMBER_OF_FRAMES-eng: 4306 NUMBER_OF_BYTES : 38866300 NUMBER_OF_BYTES-eng: 38866300 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES encoder : Lavc58.92.100 pcm_s16le frame= 8808 fps=153 q=-0.0 Lsize=N/A time=00:06:07.36 bitrate=N/A speed=6.38x video:4610kB audio:68881kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Attachments (2)
Change History (10)
comment:1 by , 3 years ago
Component: | undetermined → avcodec |
---|---|
Keywords: | videotoolbox added |
Version: | unspecified → git-master |
comment:2 by , 3 years ago
comment:3 by , 3 years ago
this is again a question only someone can answer that knows the internals of ffmpeg and the limitations of the videotoolbox API. since i don't know what the videotoolbox API exactly returns i can only guess. though it looks like wrongly sampled chroma planes.
as a test i reencoded the file to a format that the quicktime player can decode and playback. https://0x0.st/iW-I.mp4
this file also has the same problem as mentioned above, though with quicktime player the artifacts are a lot less pronounced. see screenshot below. i also verified that it used hwdec/videotoolbox for decoding. so if Apple doesn't use a private API it should be possible to fix or lessen the problem considerably.
comment:4 by , 3 years ago
this is again a question only someone can answer that knows the internals of ffmpeg and the limitations of the videotoolbox API.
Then why did you open a bug report? Questions are answered on the user mailing list, not this bug tracker.
Please attach the outputs of the following command line for both software and hardware decoding (and please do not attach more screenshots.
$ ffmpeg -vsync 0 -i sDVT.mkv -an -f framecrc outsw
comment:5 by , 3 years ago
i reported it because it's clearly an issue and not a question. what exactly the issue is something i can't tell and needs to be analysed by someone else.
sure i am not going to link more images. obviously they were added to answer your question, to make my point and show the actual issue.
both terminal outputs in the case they might be in any way relevant. otherwise i attached both outputs.
ffmpeg -vsync 0 -i /Volumes/AkemiData/Downloads/ffmpeg_videotoolbox_issues/sDVT.mkv -an -f framecrc outsw ffmpeg version git-2020-06-11-bc8ab084 Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.0 (clang-1100.0.33.12) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-bc8ab08 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=/usr/bin/clang --host-cflags='-Os -w -pipe -march=nehalem -mmacosx-version-min=10.14 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -fno-stack-check' --host-ldflags='-L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/python@3.8/lib -L/usr/local/opt/sqlite/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/openssl@1.1/lib -L/usr/local/lib -F/usr/local/Frameworks -Wl,-headerpad_max_install_names -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk' --enable-ffplay --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-gpl --enable-nonfree --enable-hardcoded-tables --enable-libfdk-aac --enable-libgme --enable-libbs2b --enable-libgsm --enable-libxml2 --enable-openssl --enable-libwavpack --enable-libzmq --enable-libzimg --enable-opencl libavutil 56. 54.100 / 56. 54.100 libavcodec 58. 92.100 / 58. 92.100 libavformat 58. 46.101 / 58. 46.101 libavdevice 58. 11.100 / 58. 11.100 libavfilter 7. 86.100 / 7. 86.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc 55. 8.100 / 55. 8.100 Input #0, matroska,webm, from '/Volumes/AkemiData/Downloads/ffmpeg_videotoolbox_issues/sDVT.mkv': Metadata: encoder : libebml v1.3.5 + libmatroska v1.4.8 creation_time : 2017-11-20T03:32:29.000000Z Duration: 00:06:07.37, start: 0.000000, bitrate: 6643 kb/s Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt709/unknown/unknown), 1920x1080, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default) Metadata: BPS : 5794944 BPS-eng : 5794944 DURATION : 00:06:07.367000000 DURATION-eng : 00:06:07.367000000 NUMBER_OF_FRAMES: 8808 NUMBER_OF_FRAMES-eng: 8808 NUMBER_OF_BYTES : 266108920 NUMBER_OF_BYTES-eng: 266108920 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:1(eng): Audio: flac, 48000 Hz, stereo, s32 (24 bit) (default) Metadata: BPS : 846380 BPS-eng : 846380 DURATION : 00:06:07.365000000 DURATION-eng : 00:06:07.365000000 NUMBER_OF_FRAMES: 4306 NUMBER_OF_FRAMES-eng: 4306 NUMBER_OF_BYTES : 38866300 NUMBER_OF_BYTES-eng: 38866300 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:2: Subtitle: ass (default) Metadata: BPS : 133 BPS-eng : 133 DURATION : 00:05:44.590000000 DURATION-eng : 00:05:44.590000000 NUMBER_OF_FRAMES: 94 NUMBER_OF_FRAMES-eng: 94 NUMBER_OF_BYTES : 5745 NUMBER_OF_BYTES-eng: 5745 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream mapping: Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native)) Press [q] to stop, [?] for help Output #0, framecrc, to 'outsw': Metadata: encoder : Lavf58.46.101 Stream #0:0: Video: rawvideo (Y3[11][10] / 0xA0B3359), yuv420p10le, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 745750 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc (default) Metadata: BPS : 5794944 BPS-eng : 5794944 DURATION : 00:06:07.367000000 DURATION-eng : 00:06:07.367000000 NUMBER_OF_FRAMES: 8808 NUMBER_OF_FRAMES-eng: 8808 NUMBER_OF_BYTES : 266108920 NUMBER_OF_BYTES-eng: 266108920 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES encoder : Lavc58.92.100 rawvideo frame= 8808 fps=269 q=-0.0 Lsize= 499kB time=00:06:07.36 bitrate= 11.1kbits/s speed=11.2x video:53508600kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
akemi$ ffmpeg -hwaccel videotoolbox -vsync 0 -i /Volumes/AkemiData/Downloads/ffmpeg_videotoolbox_issues/sDVT.mkv -an -f framecrc outsw2 ffmpeg version git-2020-06-11-bc8ab084 Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.0 (clang-1100.0.33.12) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-bc8ab08 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=/usr/bin/clang --host-cflags='-Os -w -pipe -march=nehalem -mmacosx-version-min=10.14 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -fno-stack-check' --host-ldflags='-L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/python@3.8/lib -L/usr/local/opt/sqlite/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/openssl@1.1/lib -L/usr/local/lib -F/usr/local/Frameworks -Wl,-headerpad_max_install_names -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk' --enable-ffplay --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-gpl --enable-nonfree --enable-hardcoded-tables --enable-libfdk-aac --enable-libgme --enable-libbs2b --enable-libgsm --enable-libxml2 --enable-openssl --enable-libwavpack --enable-libzmq --enable-libzimg --enable-opencl libavutil 56. 54.100 / 56. 54.100 libavcodec 58. 92.100 / 58. 92.100 libavformat 58. 46.101 / 58. 46.101 libavdevice 58. 11.100 / 58. 11.100 libavfilter 7. 86.100 / 7. 86.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc 55. 8.100 / 55. 8.100 Input #0, matroska,webm, from '/Volumes/AkemiData/Downloads/ffmpeg_videotoolbox_issues/sDVT.mkv': Metadata: encoder : libebml v1.3.5 + libmatroska v1.4.8 creation_time : 2017-11-20T03:32:29.000000Z Duration: 00:06:07.37, start: 0.000000, bitrate: 6643 kb/s Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt709/unknown/unknown), 1920x1080, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default) Metadata: BPS : 5794944 BPS-eng : 5794944 DURATION : 00:06:07.367000000 DURATION-eng : 00:06:07.367000000 NUMBER_OF_FRAMES: 8808 NUMBER_OF_FRAMES-eng: 8808 NUMBER_OF_BYTES : 266108920 NUMBER_OF_BYTES-eng: 266108920 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:1(eng): Audio: flac, 48000 Hz, stereo, s32 (24 bit) (default) Metadata: BPS : 846380 BPS-eng : 846380 DURATION : 00:06:07.365000000 DURATION-eng : 00:06:07.365000000 NUMBER_OF_FRAMES: 4306 NUMBER_OF_FRAMES-eng: 4306 NUMBER_OF_BYTES : 38866300 NUMBER_OF_BYTES-eng: 38866300 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:2: Subtitle: ass (default) Metadata: BPS : 133 BPS-eng : 133 DURATION : 00:05:44.590000000 DURATION-eng : 00:05:44.590000000 NUMBER_OF_FRAMES: 94 NUMBER_OF_FRAMES-eng: 94 NUMBER_OF_BYTES : 5745 NUMBER_OF_BYTES-eng: 5745 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream mapping: Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native)) Press [q] to stop, [?] for help Output #0, framecrc, to 'outsw2': Metadata: encoder : Lavf58.46.101 Stream #0:0: Video: rawvideo, p010le, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 745750 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc (default) Metadata: BPS : 5794944 BPS-eng : 5794944 DURATION : 00:06:07.367000000 DURATION-eng : 00:06:07.367000000 NUMBER_OF_FRAMES: 8808 NUMBER_OF_FRAMES-eng: 8808 NUMBER_OF_BYTES : 266108920 NUMBER_OF_BYTES-eng: 266108920 _STATISTICS_WRITING_APP: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_APP-eng: mkvmerge v18.0.0 ('Apricity') 64-bit _STATISTICS_WRITING_DATE_UTC: 2017-11-20 03:32:29 _STATISTICS_WRITING_DATE_UTC-eng: 2017-11-20 03:32:29 _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES encoder : Lavc58.92.100 rawvideo frame= 8808 fps=138 q=-0.0 Lsize= 499kB time=00:06:07.36 bitrate= 11.1kbits/s speed=5.76x video:53508600kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
comment:6 by , 3 years ago
So some frames including first and last are bit-exact, most frames are not: How is this an indication for an issue that can be fixed in FFmpeg?
by , 3 years ago
Attachment: | swdecodep010 added |
---|
comment:7 by , 3 years ago
the first and last few frames are probably bit-exact because they are complete black frames and whatever transformation videotoolbox does internally translates black to black (0 > 0 (full), or 16 > 16 (limited 8 bit), or 64 > 64 (limited 10bit)).
mentioning a transformation because there was a similar problem before with full range videos. https://github.com/FFmpeg/FFmpeg/commit/2a9d461abcc88ab74f2143aada1e366a0961830c#diff-c16efb3d450eaaeb30bd45f817966fc6
in that case videotoolbox internally converted the full range video stream to limited, but it was still treated as full range. leading to washed out output.
anyway, it's possible that videotoolbox does something unexpected because it doesn't get the appropriate information it needs to decode the stream properly. so basically it could be an inappropriate or wrong usage of the videotoolbox API, or it could just be that videtoolbox is completely at fault here.
comment:8 by , 2 years ago
That was fixed by Apple. https://github.com/mpv-player/mpv/issues/6369#issuecomment-755039744
Can be closed I think.
Why do you think this behaviour can be changed in FFmpeg?