[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