I just upgraded my system to Ubuntu 20.10, and now I cannot play 10 bit
yuv420p10le format videos anymore. This problem occurs with both HEVC and AV1 codec videos. Both videos played in VLC before the upgrade. When I run VLC from a terminal, I get an error:
[00007fd6a000b170] chain filter error: Too high level of recursion (3) [00007fd6a000aa10] main filter error: Failed to create video converter
This message appears no matter what video output I select, and when I use the OpenGL output, I get various OpenGL related errors. Some video output options lead to a segfault, while others just don't play anything. I can play these files in
ffplay, but since they are HDR, the colors don't look right.
Steps to reproduce: make sure you have VLC 220.127.116.11 installed. Find any video file, then run the following command on it:
ffmpeg -i "your video file" -color_primaries bt2020 -pix_fmt yuv420p10 -codec copy ./output.mkv
The resulting file should cause VLC to crash. (NOTE: you could replace
bt2020 with any valid color primaries, and you will still get the same result)
These are the
mediainfo outputs for the files in question ()they are both the same video, just encoded with different codecs)
Format : HEVC Format/Info : High Efficiency Video Coding Format profile : Main 10@L4@Main Codec ID : V_MPEGH/ISO/HEVC Duration : 1 min 53 s Bit rate : 96.0 Mb/s Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 30.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 10 bits Bits/(Pixel*Frame) : 1.543 Stream size : 1.27 GiB (98%) Writing library : x265 2.8:[Linux][GCC 7.3.0][64 bit] 10bit Default : Yes Forced : No Color range : Full Color primaries : BT.2020 Transfer characteristics : HLG Matrix coefficients : BT.2020 non-constant
Format : AV1 Format/Info : AOMedia Video 1 Format profile : Main Codec ID : V_AV1 Duration : 1 min 53 s Bit rate : 166 Mb/s Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 30.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 10 bits Bits/(Pixel*Frame) : 2.673 Stream size : 2.20 GiB (98%) Default : Yes Forced : No Color range : Full Color primaries : BT.2020 Transfer characteristics : HLG Matrix coefficients : BT.2020 non-constant
EDIT: I have done some test, and figured out that any video will play, as long as the color space specified in the file is not bt2020. I also noticed that if I download this file after uploading it to youtube, it will play correctly, despite having the bt2020 color space in the metadata.