[FFmpeg-user] Can't pass bit depth to x265 from ffmpeg

Jim Worrall coniophora at gmail.com
Mon Feb 15 07:32:12 CET 2016


I compiled libx265 statically with support for bit depths 8, 10, and 12.  I first deleted old x265 executable and libx265* files.  When I was finished, x265 —version confirmed that I had all 3 bit-depth options:

x265 [info]: HEVC encoder version 1.9
x265 [info]: build info [Mac OS X][clang 7.0.2][64 bit] 8bit+10bit+12bit  <- **************
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2

I then compiled ffmpeg with the new libx265.  However, when I try to use bit depth other than the default 8, libx265 complains that it doesn’t recognize the option:

ffmpeg -i in.mkv -c:v libx265 -x265-params output-depth=10 out.mkv

ffmpeg version N-78441-g4c44972 Copyright (c) 2000-2016 the FFmpeg developers
  built with Apple LLVM version 7.0.2 (clang-700.1.81)
  configuration: --prefix=/Volumes/Ramdisk/sw --enable-nonfree --enable-gpl --enable-version3 --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libgsm --enable-libvpx --enable-libfdk-aac --enable-libvorbis --enable-libass --enable-libfreetype --enable-libfontconfig --enable-libfribidi --disable-outdevs --disable-ffserver --disable-network
  libavutil      55. 17.102 / 55. 17.102
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from 'in.mkv':
    Stream #0:0(eng): Video: hevc (Main), yuv420p(tv), 1920x820 [SAR 1:1 DAR 96:41], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
    Metadata:
      title           : Video
      ENCODER         : Lavc57.24.102 libx265
      DURATION        : 00:01:00.019000000
[libx265 @ 0x7fbbea026400] Unknown option: output-depth.  <- ***************************
x265 [info]: HEVC encoder version 1.9
x265 [info]: build info [Mac OS X][clang 7.0.2][64 bit] 8bit+10bit+12bit  <- ***********
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
x265 [info]: Main profile, Level-4 (Main tier)  <- ****** MAIN PROFILE IS 8 BIT DEFAULT
x265 [info]: Thread pool created using 4 threads
x265 [info]: frame threads / pool features       : 2 / wpp(13 rows)
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       : 23 / 250 / 40
x265 [info]: Lookahead / bframes / badapt        : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb       : 1 / 1 / 0
x265 [info]: References / ref-limit  cu / depth  : 3 / 1 / 1
x265 [info]: AQ: mode / str / qg-size / cu-tree  : 1 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress            : CRF-28.0 / 0.60
x265 [info]: tools: rd=3 psy-rd=2.00 signhide tmvp strong-intra-smoothing
x265 [info]: tools: lslices=5 deblock sao
Output #0, matroska, to 'out.mkv':
    Stream #0:0(eng): Video: hevc (libx265), yuv420p, 1920x820 [SAR 1:1 DAR 96:41], q=2-31, 23.98 fps, 1k tbn, 23.98 tbc (default)
    Metadata:
      title           : Video
      DURATION        : 00:01:00.019000000
      encoder         : Lavc57.24.102 libx265
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> hevc (libx265))
Press [q] to stop, [?] for help
frame= 1167 fps=4.1 q=-0.0 Lsize=    7120kB time=00:00:48.59 bitrate=1200.4kbits/s speed=0.172x    

I tried many variations to no avail: using “D=10" instead of "output-depth=10", using “-profile:v main10", and more.  But if I use x265 directly, I can successfully invoke 10-bit encoding:

ffmpeg -i in.mkv -f yuv4mpegpipe - | x265 --y4m - --output-depth 10 -o out.hevc
. . .
Output #0, yuv4mpegpipe, to 'pipe:':
    Stream #0:0(eng): Video: wrapped_avframe, yuv420p, 1920x820 [SAR 1:1 DAR 96:41], q=2-31, 200 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc (default)
    Metadata:
      title           : Video
      DURATION        : 00:01:00.019000000
      encoder         : Lavc57.24.102 wrapped_avframe
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
y4m  [info]: 1920x820 fps 24000/1001 i420p8 sar 1:1 unknown frame count
raw  [info]: output file: out.hevc
x265 [info]: HEVC encoder version 1.9
x265 [info]: build info [Mac OS X][clang 7.0.2][64 bit] 10bit  <- *************************
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
x265 [info]: Main 10 profile, Level-4 (Main tier)  <- *************************

The latter is not a viable option for various reasons, not the least of which is I don’t know what is going on with that command.  I have no idea if the ffmpeg interface with x265 isn’t up to date, the commands are wrong, or what.


More information about the ffmpeg-user mailing list