Yuv420p and yuv420p12le - Can be both read by OSMC?

Hi all!
I’ve two video both with video stream compressed with H265; the first plays correctly, the second not.

I’ve checked with ffprobe what’s the differences:

  • First has a yuv420p pixel format (and plays fine);
  • Second has a yuv420p12le pixel format and the video stream cannot be played: OSMC just shows the directory content while the audio is playing.

Please:

  • Can you confirm that there is no way to play a yuv420p12le pixel format video on OSMC? On VLC plays correctly (both on Win10 and OSX machines);
  • how can I check what are the supported video format on OSMC?
  • (Just in case someone knows also ffmpeg) How can I convert / force the supported pixel format while encoding video with ffmpeg;
  • (Again - just in case someone knows ffmpeg…) How can I convert without re-encoding the yuv420p12le stream into supported encoding format?

Thank you very much for your answer!

Francesco

It may have less to do with the pixel format than the fact that you are trying to play x265 on an rpi. Rpi can only decode hevc in software and it’s known to have issues with high bitrate 1080p files. If you need consistent support for hevc you should be looking into getting a Vero4k+.

Some more details:

  • video resolution is HD (720p);
  • I have other videos with same resolution and yuv420p that plays correctly and videos in yuv420p12le that doesn’t play;
  • All videos are x265.

To be more precise I can encode another video forcing x264 as video codec and see what’s the result.

F.

The videos that play are probably 8 bit depth. Check the media info to confirm.
720p HEVC @ 8bit depth is probably as much as a Raspberry Pi can handle in software decoding.
My advice, and I use Pis for both my OSMC installs, is to stick to h264 for hardware acceleration or to re-encode the HEVC 12bit videos at a lower bit depth (8 bit).

As per ffmpeg output:

Pixel formats:
I.... = Supported Input  format for conversion
.O... = Supported Output format for conversion
..H.. = Hardware accelerated format
...P. = Paletted format
....B = Bitstream format
FLAGS NAME            NB_COMPONENTS BITS_PER_PIXEL
-----
IO... yuv420p                3            12

Note that bit format is indipendent to codec.

F.

I’m sorta lost by your reply as I’m not sure which file this info relates to.
Of course the bit depth is independent from the codec…
Install the mediainfo package using sudo apt-get update && sudo apt-get install mediainfo then compare the two files. One that works and one that doesn’t.
In fact post the results here and I’ll have a look if I get a chance.

Hi,
thank you for help; here the results for the video stream of two sample files:

This one PLAY

ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main@L3.1@Main
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 41 min 25 s
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 25.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Writing library                          : x265 2.6:[Linux][GCC 7.2.0][64 bit] 8bit+10bit+12bit
Encoding settings                        : cpuid=1049151 / frame-threads=3 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1280x720 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=3 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=25 / keyint=250 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=20 / lookahead-slices=4 / scenecut=40 / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=0 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=2 / limit-refs=3 / no-limit-modes / me=1 / subme=2 / merange=57 / temporal-mvp / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=3 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=0.00 / no-rd-refine / analysis-reuse-mode=0 / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=23.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / ipratio=1.40 / pbratio=1.30 / aq-mode=1 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / max-cll=0,0 / min-luma=0 / max-luma=255 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt / analysis-reuse-level=5 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-mv-type=0 / copy-pic=1
Language                                 : English
Default                                  : Yes
Forced                                   : Yes

This one DON’T PLAY

ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : @L3.1@Main
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 38 min 41 s
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 25.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 12 bits
Writing library                          : x265 2.8:[Unk-OS][clang 6.0.0][64 bit] 12bit
Encoding settings                        : cpuid=1048639 / frame-threads=3 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1280x720 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=3 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=25 / keyint=250 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=20 / lookahead-slices=4 / scenecut=40 / radl=0 / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=0 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=2 / limit-refs=3 / no-limit-modes / me=1 / subme=2 / merange=57 / temporal-mvp / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=3 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=0.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=23.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / ipratio=1.40 / pbratio=1.30 / aq-mode=1 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / max-cll=0,0 / min-luma=0 / max-luma=4095 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=5 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-mv-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei
Language                                 : English
Default                                  : Yes
Forced                                   : Yes
Statistics Tags Issue                    : mkvmerge v8.5.2 ('Crosses') 64bit 2017-11-04 07:18:03 / Lavf58.12.100 
FromStats_BitRate                        : 5753984
FromStats_Duration                       : 00:38:41.600000000
FromStats_FrameCount                     : 58039
FromStats_StreamSize                     : 1669777536

F.

The video with 12-bit depth doesn’t play the one with 8 does ColumbosCoat suspicion was correct

1 Like

Since the Pi can’t do x265 hw-acc, I’d re-encode the video with Handbrake to x264 and be done. (or use something that can handle x265 for playback)
Regards
/L

Hi all,

thank you very much for your answers; by the way the main question still remains without answer:

Hope anyone can help.
F.

Yes! I know! This is my main issue! :smiley:

So it’s definitive?

Again:

Thanks for answers.

F.

Hi,

This will come down to what hardware you are running osmc, I don’t think you have stated which pi you are running osmc on, but a quick google search came up with this:

https://www.raspberrypi.org/forums/viewtopic.php?t=45625

Thanks Tom.