#5715 closed defect (worksforme)
FFMpeg 3.1.1 doesn't pass any options to x265 2.0 when using x265-params
Reported by: | Artem S. Tashkinov | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avcodec |
Version: | git-master | Keywords: | libx265 |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
How to reproduce:
$ ffmpeg -i 1.mkv -c:v libx265 -preset placebo -x265-params crf=22:rdoq-level=1:merange=40:ctu=32:max-tu-size=16:no-sao out.mkv ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 4.8 configuration: --prefix=/var/encode --enable-gpl --enable-version3 --enable-nonfree --enable-gray --enable-avresample --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libx264 --enable-libx265 --enable-libxvid --enable-pthreads --extra-libs='-ldl -lstdc++'
The resulting file has a different CRF, different rdoq-level, merange, ctu, etc. etc. etc. :
x265 (build 87) - 2.0:[Linux]
[GCC 4.8.4][64 bit] 8bit - H.265/HEVC codec - Copyright 2013-2015 (c) Multicoreware Inc - http://x265.org - options: 640x480 fps=15/1 bitdepth=8 wpp ctu=64 min-cu-size=8 max-tu-size=32 tu-intra-depth=4 tu-inter-depth=4 me=3 subme=5 merange=92 rect amp max-merge=5 temporal-mvp no-early-skip no-rskip rdpenalty=0 tskip no-tskip-fast strong-intra-smoothing no-lossless no-cu-lossless no-constrained-intra no-fast-intra open-gop no-temporal-layers interlace=0 keyint=250 min-keyint=15 scenecut=40 rc-lookahead=60 lookahead-slices=0 bframes=8 bframe-bias=0 b-adapt=2 ref=5 limit-refs=0 no-limit-modes weightp weightb aq-mode=1 qg-size=32 aq-strength=1.00 cbqpoffs=0 crqpoffs=0 rd=6 psy-rd=2.00 rdoq-level=2 psy-rdoq=1.00 no-rd-refine signhide deblock=0:0 sao no-sao-non-deblock b-pyramid cutree no-intra-refresh rc=crf crf=28.0 qcomp=0.60 qpmin=0 qpmax=51 qpstep=4 ipratio=1.40 pbratio=1.30
Perhaps it's a dupe of bug 4284 but this time everything is even more broken.
Change History (7)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Keywords: | libx265 added; x265 removed |
---|---|
Priority: | critical → normal |
Please test current FFmpeg git head and provide the command line that allows to reproduce the issue together with the complete, uncut console output to make this a valid ticket.
comment:3 by , 8 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
If it's so difficult for you to run a single command to see the results immediately, just don't bother. No, git head doesn't have any changes in regard to parsing x265 arguments (I've just checked the last three months of the commit history) - it's pointless to test it.
follow-up: 5 comment:4 by , 8 years ago
You must speficy a value for each parameter.
You can't set just no-sao but no-sao=1
It should work fine with that.
comment:5 by , 8 years ago
Replying to easyfab:
You must speficy a value for each parameter.
You can't set just no-sao but no-sao=1
It should work fine with that.
All other arguments are ignored as well as seen in the output:
Input : crf=22:rdoq-level=1:merange=40:ctu=32:max-tu-size=16 Output: crf=28 rdoq-level=2 merange=92 ctu=64 max-tu-size=32
Frankly speaking I don't know what to add.
comment:6 by , 8 years ago
Resolution: | wontfix → worksforme |
---|
Works for me after adding the value 1 to no-sao, and also after removing the parameter altogether.
$ ./ffmpeg -i test.y4m -c:v libx265 -preset placebo -x265-params crf=22:rdoq-level=1:merange=40:ctu=32:max-tu-size=16:no-sao=1 -f null - ffmpeg version n3.1.1 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 6.1.1 (GCC) 20160602 configuration: --enable-gpl --enable-libx265 --prefix=/usr libavutil 55. 28.100 / 55. 28.100 libavcodec 57. 48.101 / 57. 48.101 libavformat 57. 41.100 / 57. 41.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 47.100 / 6. 47.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2. 1.100 / 2. 1.100 libpostproc 54. 0.100 / 54. 0.100 Input #0, yuv4mpegpipe, from 'test.y4m': Duration: 00:00:03.00, start: 0.000000, bitrate: 265156 kb/s Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc x265 [info]: HEVC encoder version 2.0+1-6a9b6a828f79 x265 [info]: build info [Linux][GCC 6.1.1][64 bit] 8bit+10bit+12bit x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2 x265 [info]: Main profile, Level-3.1 (Main tier) x265 [info]: Thread pool created using 4 threads x265 [info]: frame threads / pool features : 2 / wpp(23 rows) x265 [info]: Coding QT: max CU size, min CU size : 32 / 8 x265 [info]: Residual QT: max TU size, max depth : 16 / 4 inter / 4 intra x265 [info]: ME / range / subpel / merge : star / 40 / 5 / 5 x265 [info]: Keyframe min / max / scenecut : 23 / 250 / 40 x265 [info]: Lookahead / bframes / badapt : 60 / 8 / 2 x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 1 x265 [info]: References / ref-limit cu / depth : 5 / off / off x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 32 / 1 x265 [info]: Rate Control / qCompress : CRF-22.0 / 0.60 x265 [info]: tools: rect amp rd=6 psy-rd=2.00 rdoq=1 psy-rdoq=1.00 tskip x265 [info]: tools: signhide tmvp b-intra strong-intra-smoothing deblock [null @ 0x2d50760] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. Output #0, null, to 'pipe:': Metadata: encoder : Lavf57.41.100 Stream #0:0: Video: hevc (libx265), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbn, 23.98 tbc Metadata: encoder : Lavc57.48.101 libx265 Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (libx265)) Press [q] to stop, [?] for help frame= 72 fps=0.8 q=-0.0 Lsize=N/A time=00:00:02.91 bitrate=N/A speed=0.0333x video:632kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown x265 [info]: frame I: 3, Avg QP:21.34 kb/s: 6364.96 x265 [info]: frame P: 15, Avg QP:23.00 kb/s: 3569.69 x265 [info]: frame B: 54, Avg QP:27.50 kb/s: 941.05 x265 [info]: Weighted P-Frames: Y:0.0% UV:0.0% x265 [info]: Weighted B-Frames: Y:0.0% UV:0.0% x265 [info]: consecutive B-frames: 16.7% 5.6% 16.7% 16.7% 11.1% 33.3% 0.0% 0.0% 0.0% encoded 72 frames in 87.74s (0.82 fps), 1714.68 kb/s, Avg QP:26.31
comment:7 by , 8 years ago
Thanks for testing, I will try to use x265 as an external library then. I really don't understand why it works for you and doesn't work for me.
Another critical issue is that unknown parameters are simply ignored. They are not reported, they don't cause termination or anything - that should be fixed as well.