#10182 closed defect (worksforme)
prores_videotoolbox results are inaccurate color
| Reported by: | Mils | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avcodec |
| Version: | 5.1.2 | Keywords: | prores, prores_videotoolbox, videotoolbox |
| Cc: | Mils | Blocked By: | |
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description (last modified by )
Summary of the bug:
Hi,
I would like to utilise the hardware acceleration of the Apple Silicon.
I have tried using hevc_videotoolbox h264_videotoolbox both came out fine. Even the old -c:v prores_ks is also fine (just very slow at 0.2x)
But when I use the prores_videotoolbox the results came like it has been applied too much exposure/gamma
Hardware: M2 Pro Mac Mini (Ventura 13.2)
FFMPEG version 5.1.2
Video source: 3840x1610, HEVC (Main 10@L5), HDR10
Attached are the comparison and YES I own the movie right through Bluray AND Digital iTunes. This is for personal use/project.
How to reproduce:
% ffmpeg -i H2-30s.mkv -c:v prores_videotoolbox H2-30sPR.mov
ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
built with Apple clang version 14.0.0 (clang-1400.0.29.202)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/5.1.2_4 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
Input #0, matroska,webm, from 'H2-30s.mkv':
Metadata:
ENCODER : Lavf59.27.100
Duration: 00:00:32.50, start: 0.009000, bitrate: 20065 kb/s
Chapters:
Chapter #0:0: start 0.000000, end 30.000000
Metadata:
title : Chapter 05
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x1608, SAR 1:1 DAR 160:67, 23.98 fps, 23.98 tbr, 1k tbn (default)
Metadata:
BPS-eng : 16298452
DURATION-eng : 03:06:34.517000000
NUMBER_OF_FRAMES-eng: 268400
NUMBER_OF_BYTES-eng: 22806662308
_STATISTICS_WRITING_APP-eng: mkvmerge v38.0.0 ('The Silent Type') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-12-10 01:14:57
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
DURATION : 00:00:30.257000000
===============RESOLUTION: Works for me==================
Hi all,
I found by adding -pix_fmt and the following formats solved the issue: uyvy422, p210le, p216le, ayuv64le.
Supported pixel formats: videotoolbox_vld yuv420p nv12 ayuv64le uyvy422 p010le nv16 p210le p216le nv24 p410le p416le bgra
The rest of the available formats gave the same issue as auto.
So in summary, the following ffmpeg line works for me (I exclude Audio conversion / -an):
ffmpeg -i [input.mkv] -c:v prores_videotoolbox -profile:v 3 -vendor apl0 -pix_fmt uyvy422 -an [output.mov]
ffmpeg -i [input.mkv] -c:v prores_videotoolbox -profile:v 3 -vendor apl0 -pix_fmt p010le -an [output.mov]
ffmpeg -i [input.mkv] -c:v prores_videotoolbox -profile:v 3 -vendor apl0 -pix_fmt p210le -an [output.mov]
ffmpeg -i [input.mkv] -c:v prores_videotoolbox -profile:v 3 -vendor apl0 -pix_fmt p216le -an [output.mov]
I'm going to close the ticket.
Thank you all.
Attachments (3)
Change History (8)
by , 3 years ago
| Attachment: | prores_videotoolbox.jpg added |
|---|
comment:1 by , 3 years ago
| Description: | modified (diff) |
|---|
comment:3 by , 3 years ago
Hi Balling,
I've converted the original footage to just 3 seconds (instead of 30 seconds) so I don't have to send 1.26GB of ProRes. I've also created a mediainfo.
I'm not sure how to upload more than 2.5MB in trac.ffmpeg.org so I upload it to my dropbox.
Please find the following link: [redacted]
In the .zip file there'll be the original footage, then the HEVC version that I converted using hevc_videotoolbox and then the ProRes version that I converted using prores_videotoolbox. Each footage has its mediainfo in .txt format.
With the original footage is there, hopefully you can also reproduce the issue if you have an Apple Silicon machine and help me figure out why the prores_videotoolbox resulted in terrible output.
Thank you.
(edit: wrong dropbox link before)
(edit2: Provided note that the original footage/source is included)
(edit3: redacted the link as ticket is closed0
comment:4 by , 3 years ago
| Description: | modified (diff) |
|---|---|
| Resolution: | → worksforme |
| Status: | new → closed |
Hi all,
I found by adding -pix_fmt and the following formats solved the issue: uyvy422, p210le, p216le, ayuv64le. The rest of the available formats gave the same issue as auto.
So in summary, the following ffmpeg line works for me (I exclude Audio conversion / -an):
ffmpeg -i [input.mkv] -c:v prores_videotoolbox -profile:v 3 -vendor apl0 -pix_fmt uyvy422 -an [output.mov]
ffmpeg -i [input.mkv] -c:v prores_videotoolbox -profile:v 3 -vendor apl0 -pix_fmt p010le -an [output.mov]
ffmpeg -i [input.mkv] -c:v prores_videotoolbox -profile:v 3 -vendor apl0 -pix_fmt p210le -an [output.mov]
ffmpeg -i [input.mkv] -c:v prores_videotoolbox -profile:v 3 -vendor apl0 -pix_fmt p216le -an [output.mov]
I'm going to close the ticket.
Thank you all.
comment:5 by , 3 years ago
The rest of the available formats gave the same issue as auto.
Then those must not be selected for HDR, which is logical.



prores_videotoolbox