[FFmpeg-trac] #8359(undetermined:closed): FFmpeg’s nv12 libx264: ffmpeg encodes in “yuv420p” instead of “nv12”

FFmpeg trac at avcodec.org
Tue Nov 5 03:41:30 EET 2019

#8359: FFmpeg’s nv12 libx264: ffmpeg encodes in “yuv420p” instead of “nv12”
             Reporter:  Kdmeizk      |                    Owner:
                 Type:  defect       |                   Status:  closed
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  git-master   |               Resolution:  invalid
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |

Comment (by Kdmeizk):

 Replying to [comment:1 heleppkes]:
 > The h264 bitstream carries chroma always in the same way. How a decoder
 chooses to represent it is up to the implementation, and the ffmpeg h264
 decoder choose yuv420p to do it.
 The following output files are byte-to-byte identical:
 ffmpeg-20191101-53c21c2-win64-static\bin\ffmpeg.exe -i 00006.m2ts -to
 00:00:05 -c:v libx264 -pix_fmt yuv420p -crf 0 -an output_yuv420p.nut
 ffmpeg-20191101-53c21c2-win64-static\bin\ffmpeg.exe -i 00006.m2ts -to
 00:00:05 -c:v libx264 -pix_fmt nv12 -crf 0 -an output_nv12.nut
 But it is not normal.
 From “https://wiki.videolan.org/YUV/”:
 > For a single I420 pixel: YYYYYYYY UU VV
 > […]
 > For 1 NV12 pixel: YYYYYYYY UVUV
 So ffmpeg encodes in “yuv420p” instead of “nv12”, otherwise the files
 should not be byte-to-byte identical.

Ticket URL: <https://trac.ffmpeg.org/ticket/8359#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list