#8364 closed defect (invalid)
“ffmpeg -h encoder=libx264”: “Supported pixel formats”: Remove “nv12” and “nv21”
Reported by: | Kdmeizk | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | unspecified | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
See:
https://trac.ffmpeg.org/ticket/8359#comment:2
https://trac.ffmpeg.org/ticket/8359#comment:3
ffmpeg-20191101-53c21c2-win64-static\bin\ffmpeg.exe -h encoder=libx264 Encoder libx264 [libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10]: General capabilities: delay threads Threading capabilities: auto Supported pixel formats: yuv420p yuvj420p yuv422p yuvj422p yuv444p yuvj444p nv12 nv16 nv21 yuv420p10le yuv422p10le yuv444p10le nv20le gray gray10le
Change History (6)
follow-up: 2 comment:1 by , 5 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:2 by , 5 years ago
Replying to Cigaes:
libx264 does support both formats, without conversion.
Since ffmpeg encodes in “yuv420p” when “yuv420p” or “nv12” or “nv21” is chosen, why let the possibility to encode in “nv12” or “nv21”?
It seems to be superfluous code.
follow-up: 4 comment:3 by , 5 years ago
There is no code in FFmpeg, it is forwarded to the library. You can ask there, but I suspect they know better.
comment:4 by , 5 years ago
Oh. So the meaning of “Supported pixel formats” is more “Supported input pixel formats” than “Supported output pixel formats”?
comment:5 by , 5 years ago
It was explained to you that there is no “pixel format” as such in encoded bit streams.
comment:6 by , 5 years ago
Yes. With this question, I try to check if “Supported pixel formats” could be renamed “Supported input pixel formats” or “Supported output pixel formats” to easier understand.
I looked in “x264-r2969-d4099dd.exe --fullhelp”:
--input-csp <string> Specify input colorspace format for raw input - valid csps for `raw' demuxer: i420, yv12, nv12, nv21, i422, yv16, nv16, i444, yv24, bgr, bgra, rgb - valid csps for `lavf' demuxer: yuv420p, yuyv422, rgb24, bgr24, yuv422p, yuv444p, yuv410p, yuv411p, gray, monow, monob, pal8, yuvj420p, yuvj422p, yuvj444p, xvmcmc, xvmcidct, uyvy422, uyyvyy411, bgr8, bgr4, bgr4_byte, rgb8, rgb4, rgb4_byte, nv12, nv21, argb, rgba, abgr, bgra, gray16be, gray16le, yuv440p, yuvj440p, yuva420p, vdpau_h264, vdpau_mpeg1, vdpau_mpeg2, vdpau_wmv3, vdpau_vc1, rgb48be, rgb48le, rgb565be, rgb565le, rgb555be, rgb555le, bgr565be, bgr565le, bgr555be, bgr555le, vaapi_moco, vaapi_idct, vaapi_vld, yuv420p16le, yuv420p16be, yuv422p16le, yuv422p16be, yuv444p16le, yuv444p16be, vdpau_mpeg4, dxva2_vld, rgb444le, rgb444be, bgr444le, bgr444be, ya8, bgr48be, bgr48le, yuv420p9be, yuv420p9le, yuv420p10be, yuv420p10le, yuv422p10be, yuv422p10le, yuv444p9be, yuv444p9le, yuv444p10be, yuv444p10le, yuv422p9be, yuv422p9le, vda_vld, gbrp, gbrp9be, gbrp9le, gbrp10be, gbrp10le, gbrp16be, gbrp16le, yuva422p, yuva444p, yuva420p9be, yuva420p9le, yuva422p9be, yuva422p9le, yuva444p9be, yuva444p9le, yuva420p10be, yuva420p10le, yuva422p10be, yuva422p10le, yuva444p10be, yuva444p10le, yuva420p16be, yuva420p16le, yuva422p16be, yuva422p16le, yuva444p16be, yuva444p16le, vdpau, xyz12le, xyz12be, nv16, nv20le, nv20be, rgba64be, rgba64le, bgra64be, bgra64le, yvyu422, vda, ya16be, ya16le, gbrap, gbrap16be, gbrap16le, qsv, mmal, d3d11va_vld, cuda, p010le, p010be --output-csp <string> Specify output colorspace ["i420"] - i420, i422, i444, rgb
“input-csp” better approaches “Supported pixel formats”, so it is in favour of “Supported input pixel formats”.
libx264 does support both formats, without conversion.