[FFmpeg-user] x265 encoded with yuvj444p plays back as yuvj420p
Ferdi Scholten
ferdi at sttc-nlp.nl
Thu Feb 3 23:57:57 EET 2022
On 03-02-2022 22:43, Ferdi Scholten wrote:
>
>
> On 03-02-2022 22:39, Ferdi Scholten wrote:
>> On Fri, 4 Feb 2022 at 08:23, Ferdi Scholten <ferdi at sttc-nlp.nl> wrote:
>>>> You are encoding with the main profile. That only supports 4:2:0
>>>> chroma
>>>> sampling. Use another profile.
>>> I tried with -profile:v main444, and it results in the same problem
>>> (full command below): https://0x0.st/oHna.mkv
>>> Is there another profile I should be using?
>>>
>>> And regardless of what profile I chose, shouldn't ffmpeg be
>>> downsampling the chroma channels if 4:4:4 isn't supported instead of
>>> just outputting garbage?
>>>
>>> $ ffmpeg -i oHn-.mkv -codec:v libx265 -profile:v main444-8 -preset
>>> fast -crf 22 -codec:a copy a.mkv
>>> ffmpeg version 4.4.1-3 Copyright (c) 2000-2021 the FFmpeg developers
>>> built with gcc 11 (Debian 11.2.0-14)
>>> configuration: --prefix=/usr --extra-version=3 --toolchain=hardened
>>> --libdir=/usr/lib/x86_64-linux-gnu
>>> --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
>>> --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom
>>> --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
>>> --enable-libcdio --enable-libcodec2 --enable-libdav1d
>>> --enable-libflite --enable-libfontconfig --enable-libfreetype
>>> --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack
>>> --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg
>>> --enable-libopenmpt --enable-libopus --enable-libpulse
>>> --enable-librabbitmq --enable-librubberband --enable-libshine
>>> --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt
>>> --enable-libssh --enable-libtheora --enable-libtwolame
>>> --enable-libvidstab --enable-libvorbis --enable-libvpx
>>> --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid
>>> --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2
>>> --enable-omx --enable-openal --enable-opencl --enable-opengl
>>> --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx
>>> --enable-libdc1394 --enable-libdrm --enable-libiec61883
>>> --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
>>> WARNING: library configuration mismatch
>>> avcodec configuration: --prefix=/usr --extra-version=3
>>> --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu
>>> --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
>>> --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom
>>> --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
>>> --enable-libcdio --enable-libcodec2 --enable-libdav1d
>>> --enable-libflite --enable-libfontconfig --enable-libfreetype
>>> --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack
>>> --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg
>>> --enable-libopenmpt --enable-libopus --enable-libpulse
>>> --enable-librabbitmq --enable-librubberband --enable-libshine
>>> --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt
>>> --enable-libssh --enable-libtheora --enable-libtwolame
>>> --enable-libvidstab --enable-libvorbis --enable-libvpx
>>> --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid
>>> --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2
>>> --enable-omx --enable-openal --enable-opencl --enable-opengl
>>> --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx
>>> --enable-libdc1394 --enable-libdrm --enable-libiec61883
>>> --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
>>> --enable-version3 --disable-doc --disable-programs --enable-libaribb24
>>> --enable-libopencore_amrnb --enable-libopencore_amrwb
>>> --enable-libtesseract --enable-libvo_amrwbenc --enable-libsmbclient
>>> libavutil 56. 70.100 / 56. 70.100
>>> libavcodec 58.134.100 / 58.134.100
>>> libavformat 58. 76.100 / 58. 76.100
>>> libavdevice 58. 13.100 / 58. 13.100
>>> libavfilter 7.110.100 / 7.110.100
>>> libswscale 5. 9.100 / 5. 9.100
>>> libswresample 3. 9.100 / 3. 9.100
>>> libpostproc 55. 9.100 / 55. 9.100
>>> Input #0, matroska,webm, from 'oHn-.mkv':
>>> Metadata:
>>> ENCODER : Lavf58.76.100
>>> Duration: 00:00:02.02, start: 0.000000, bitrate: 1908 kb/s
>>> Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuvj444p(pc,
>>> bt709/bt709/iec61966-2-1, progressive), 2560x1440 [SAR 1:1 DAR 16:9],
>>> 60 fps, 60 tbr, 1k tbn, 120 tbc (default)
>>> Metadata:
>>> DURATION : 00:00:02.017000000
>>> Stream #0:1: Audio: aac (LC), 48000 Hz, 5.1, fltp (default)
>>> Metadata:
>>> title : Track1
>>> DURATION : 00:00:02.005000000
>>> File 'a.mkv' already exists. Overwrite? [y/N] y
>>> Stream mapping:
>>> Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
>>> Stream #0:1 -> #0:1 (copy)
>>> Press [q] to stop, [?] for help
>>> x265 [info]: HEVC encoder version 3.5+1-f0c1022b6
>>> x265 [info]: build info [Linux][GCC 10.3.0][64 bit] 8bit+10bit+12bit
>>> x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2
>>> AVX FMA3 BMI2 AVX2
>>> x265 [info]: Main profile, Level-5 (Main tier)
>>> x265 [info]: Thread pool 0 using 48 threads on numa nodes 0,1,2,3
>>> x265 [info]: Slices : 1
>>> x265 [info]: frame threads / pool features : 5 / wpp(23 rows)
>>> libnuma: Warning: node 0 not allowed
>>> x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
>>> x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1
>>> intra
>>> x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2
>>> x265 [info]: Keyframe min / max / scenecut / bias : 25 / 250 / 40 /
>>> 5.00
>>> x265 [info]: Lookahead / bframes / badapt : 15 / 4 / 0
>>> x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 0
>>> x265 [info]: References / ref-limit cu / depth : 3 / on / on
>>> x265 [info]: AQ: mode / str / qg-size / cu-tree : 2 / 1.0 / 32 / 1
>>> x265 [info]: Rate Control / qCompress : CRF-22.0 / 0.60
>>> x265 [info]: tools: rd=2 psy-rd=2.00 rskip mode=1 signhide tmvp
>>> fast-intra
>>> x265 [info]: tools: strong-intra-smoothing lslices=8 deblock sao
>>> Output #0, matroska, to 'a.mkv':
>>> Metadata:
>>> encoder : Lavf58.76.100
>>> Stream #0:0: Video: hevc, yuvj444p(pc, bt709/bt709/iec61966-2-1,
>>> progressive), 2560x1440 [SAR 1:1 DAR 16:9], q=2-31, 60 fps, 1k tbn
>>> (default)
>>> Metadata:
>>> DURATION : 00:00:02.017000000
>>> encoder : Lavc58.134.100 libx265
>>> Side data:
>>> cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
>>> Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz,
>>> 5.1, fltp (default)
>>> Metadata:
>>> title : Track1
>>> DURATION : 00:00:02.005000000
>>> frame= 121 fps=109 q=32.9 Lsize= 144kB time=00:00:02.00 bitrate=
>>> 587.2kbits/s speed= 1.8x
>>> video:137kB audio:2kB subtitle:0kB other streams:0kB global
>>> headers:2kB muxing overhead: 3.229585%
>>> x265 [info]: frame I: 1, Avg QP:25.28 kb/s: 52256.64
>>> x265 [info]: frame P: 24, Avg QP:29.55 kb/s: 172.86
>>> x265 [info]: frame B: 96, Avg QP:32.69 kb/s: 113.78
>>> x265 [info]: Weighted P-Frames: Y:0.0% UV:0.0%
>>> x265 [info]: consecutive B-frames: 4.0% 0.0% 0.0% 0.0% 96.0%
>>>
>>> encoded 121 frames in 1.05s (114.80 fps), 556.44 kb/s, Avg QP:32.00
>>>
>>>
>>>
>>> $ ffplay a.mkv
>>> ffplay version 4.4.1-3 Copyright (c) 2003-2021 the FFmpeg developers
>>> built with gcc 11 (Debian 11.2.0-14)
>>> configuration: --prefix=/usr --extra-version=3 --toolchain=hardened
>>> --libdir=/usr/lib/x86_64-linux-gnu
>>> --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
>>> --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom
>>> --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
>>> --enable-libcdio --enable-libcodec2 --enable-libdav1d
>>> --enable-libflite --enable-libfontconfig --enable-libfreetype
>>> --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack
>>> --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg
>>> --enable-libopenmpt --enable-libopus --enable-libpulse
>>> --enable-librabbitmq --enable-librubberband --enable-libshine
>>> --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt
>>> --enable-libssh --enable-libtheora --enable-libtwolame
>>> --enable-libvidstab --enable-libvorbis --enable-libvpx
>>> --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid
>>> --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2
>>> --enable-omx --enable-openal --enable-opencl --enable-opengl
>>> --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx
>>> --enable-libdc1394 --enable-libdrm --enable-libiec61883
>>> --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
>>> WARNING: library configuration mismatch
>>> avcodec configuration: --prefix=/usr --extra-version=3
>>> --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu
>>> --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
>>> --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom
>>> --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
>>> --enable-libcdio --enable-libcodec2 --enable-libdav1d
>>> --enable-libflite --enable-libfontconfig --enable-libfreetype
>>> --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack
>>> --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg
>>> --enable-libopenmpt --enable-libopus --enable-libpulse
>>> --enable-librabbitmq --enable-librubberband --enable-libshine
>>> --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt
>>> --enable-libssh --enable-libtheora --enable-libtwolame
>>> --enable-libvidstab --enable-libvorbis --enable-libvpx
>>> --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid
>>> --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2
>>> --enable-omx --enable-openal --enable-opencl --enable-opengl
>>> --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx
>>> --enable-libdc1394 --enable-libdrm --enable-libiec61883
>>> --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
>>> --enable-version3 --disable-doc --disable-programs --enable-libaribb24
>>> --enable-libopencore_amrnb --enable-libopencore_amrwb
>>> --enable-libtesseract --enable-libvo_amrwbenc --enable-libsmbclient
>>> libavutil 56. 70.100 / 56. 70.100
>>> libavcodec 58.134.100 / 58.134.100
>>> libavformat 58. 76.100 / 58. 76.100
>>> libavdevice 58. 13.100 / 58. 13.100
>>> libavfilter 7.110.100 / 7.110.100
>>> libswscale 5. 9.100 / 5. 9.100
>>> libswresample 3. 9.100 / 3. 9.100
>>> libpostproc 55. 9.100 / 55. 9.100
>>> Input #0, matroska,webm, from 'a.mkv': vq= 0KB sq= 0B f=0/0
>>> Metadata:
>>> ENCODER : Lavf58.76.100
>>> Duration: 00:00:02.03, start: 0.000000, bitrate: 581 kb/s
>>> Stream #0:0: Video: hevc (Main), yuvj420p(pc,
>>> bt709/bt709/iec61966-2-1, progressive), 2560x1440 [SAR 1:1 DAR 16:9],
>>> 60 fps, 60 tbr, 1k tbn, 60 tbc (default)
>>> Metadata:
>>> ENCODER : Lavc58.134.100 libx265
>>> DURATION : 00:00:02.017000000
>>> Stream #0:1: Audio: aac (LC), 48000 Hz, 5.1, fltp (default)
>>> Metadata:
>>> title : Track1
>>> DURATION : 00:00:02.026000000
>>> [swscaler @ 0x7fa6bdf2fcc0] deprecated pixel format used, make sure
>>> you did set range correctly
>>> 4.55 A-V: -0.021 fd= 6 aq= 0KB vq= 0KB sq= 0B f=0/0
>>> _______________________________________________
>>> ffmpeg-user mailing list
>>> ffmpeg-user at ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>>
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>> Ffmpeg is just a wrapper around libx265, it assumes you have set the
>> correct encoding parameters of the library. add -profile main444 to
>> your commandline so libx265 knows what to do.
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> I am sorry, I misread that you already used the main444 profile, that
> should work, but I see that in the encoder output it is still only
> using the main profile.
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
What happens if you use this commandline?
ffmpeg -i oHn-.mkv -codec:v libx265 -x265-params
profile=main444:preset=fast:crf=22 -codec:a copy a.mkv
More information about the ffmpeg-user
mailing list