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 3.0.11.1 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)
HEVC version:
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
AV1 version:
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.