Stream profile@level 'tagging' confusion

Issue #129 resolved
Selur created an issue

Using:

ffmpeg -y -loglevel fatal -threads 8 -i "F:\TestClips&Co\test.avi" -map 0:0 -an -sn -vsync 0 -r 25000/1000 -pix_fmt yuv420p10le -f rawvideo - | x265-16bit --pmode --pme --input - --input-depth 10 --input-res 640x352 --fps 25 --profile main444-10 --no-high-tier --no-open-gop --psy-rd 1 --no-rdoq-level --no-psy-rdoq --cu-lossless --colormatrix bt470bg --output "H:\Temp\test_new_06_46_20_7610_01.265"

4:2:0 video, 10bit, main444-10,input-depth 10 shouldn't the output be marked as Main 4:4:4@...@Main?

Not sure if this is a x265 bug or a MediaInfo bug, but when I analyze the output of the above encoding line, MediaInfo shows:

Video Count : 311 Count of stream of this kind : 1 Kind of stream : Video Kind of stream : Video Stream identifier : 0 StreamOrder : 0 ID : 1 ID : 1 Format : HEVC Format/Info : High Efficiency Video Coding Format/Url : http://www.itu.int Commercial name : HEVC Format profile : Main 10@L2.1@Main Internet media type : video/H265 Codec ID : hvc1 Codec ID/Info : High Efficiency Video Coding Codec ID/Url : http://www.itu.int/ Codec : HEVC Codec : HEVC Codec/CC : hvc1 Codec profile : Main 10@L2.1@Main Duration : 17160 Duration : 17s 160ms Duration : 17s 160ms Duration : 17s 160ms Duration : 00:00:17.160 Duration : 00:00:17:04 Duration : 00:00:17.160 (00:00:17:04) Bit rate : 99621 Bit rate : 99.6 Kbps Maximum bit rate : 256840 Maximum bit rate : 257 Kbps Width : 640 Width : 640 pixels Height : 352 Height : 352 pixels Pixel aspect ratio : 1.000 Display aspect ratio : 1.818 Display aspect ratio : 16:9 Rotation : 0.000 Frame rate mode : CFR Frame rate mode : Constant Frame rate : 25.000 Frame rate : 25.000 fps Frame count : 429 Resolution : 10 Resolution : 10 bits Colorimetry : 4:2:0 Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 10 Bit depth : 10 bits Bits/(Pixel*Frame) : 0.018 Stream size : 213687 Stream size : 209 KiB (97%) Stream size : 209 KiB Stream size : 209 KiB Stream size : 209 KiB Stream size : 208.7 KiB Stream size : 209 KiB (97%) Proportion of this stream : 0.97198 Writing library : x265 - 1.6+317-ed448198ce3d:[Windows][GCC 4.9.2][64 bit] 16bpp Writing library : x265 1.6+317-ed448198ce3d:[Windows][GCC 4.9.2][64 bit] 16bpp Encoded_Library_Name : x265 Encoded_Library_Version : 1.6+317-ed448198ce3d:[Windows][GCC 4.9.2][64 bit] 16bpp Encoding settings : wpp / ctu=64 / min-cu-size=8 / max-tu-size=32 / tu-intra-depth=1 / tu-inter-depth=1 / me=1 / subme=2 / merange=57 / no-rect / no-amp / max-merge=2 / temporal-mvp / no-early-skip / rdpenalty=0 / no-tskip / no-tskip-fast / strong-intra-smoothing / no-lossless / cu-lossless / no-constrained-intra / no-fast-intra / no-open-gop / no-temporal-layers / interlace=0 / keyint=250 / min-keyint=25 / scenecut=40 / rc-lookahead=20 / lookahead-slices=0 / bframes=4 / bframe-bias=0 / b-adapt=2 / ref=3 / weightp / no-weightb / aq-mode=1 / aq-strength=1.00 / cbqpoffs=0 / crqpoffs=0 / rd=3 / psy-rd=1.00 / rdoq-level=0 / psy-rdoq=0.00 / signhide / deblock / sao / no-sao-non-deblock / b-pyramid / cutree / rc=crf / crf=28.0 / qcomp=0.60 / qpmin=0 / qpmax=51 / qpstep=4 / ipratio=1.40 / pbratio=1.30 Encoded date : UTC 2015-04-28 04:46:31 Tagged date : UTC 2015-04-28 04:46:31 Color range : Limited colour_description_present : Yes Matrix coefficients : BT.601

Which indicates: 'Main 10@L2.1@Main', which might be the more appropriate Profile still, shouldn't it be marked as 'Main 4:4:4 10' ?

Comments (4)

  1. Deepthi Nandakumar

    Hi, There was a patch pushed just yesterday which clarified the profile assignment if a range extension profile different from the input csp was specified. Can you test again?

  2. Steve Borho

    Even if you specified --profile main444-10, if your input CSP is I420, the encoder will signal the stream as Main10. This is consistent with the way it handles level and tier as well; it always signals the minimum decoder requirement level required to decode the stream.

    your example does not require a Main444-10 decoder, any Main10 decoder can decode it, so that is what is signaled.

    The only thing --profile main444-10 does is make sure that the stream generated by the encoder can be decoded by a decoder supporting that profile.

  3. Selur reporter

    Thanks for clarifying that. I knew that 4:4:4 wasn't required, I was just confused about the signaling. :)

  4. Log in to comment