P010le format in ffmpeg I don't know since which version FFmpeg support it. Try scale_cuda=720:404:format=p010le and -profile:v main10: ffmpeg -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input. mkv -pix_fmt yuv420p10le -c:v hevc_nvenc -profile:v main10 -cq 21 out. (Kaby Lake applies Intel Core Gen 7). Previously you had to compile x264 with --bit-depth=10, and then link your ffmpeg to either an 8-bit or . mkv. yuv For some reason when encoding with hevc_nvenc (I use an NVIDIA GTX 1660 Ti GPU), ffmpeg (the command line tool) changes the pixel format to a 10 or 12 bit variant (p010le, gray12le, yuv420p10le, yuv444p12le, ), but I would like to keep the full 16 bits, since this affects the quality of the depth stored. mkv -pix_fmt yuv420p10le -c:v libx265 -crf 21 -x265-params profile=main10 out. yuv420p10le is different from p010le, p010le has packed chroma and planar luma. mkv -vf scale_cuda=720:404:format=p010le -c:v hevc_nvenc -profile:v main10 -preset p7 -rc vbr -rc-lookahead 20 -b:v 2000k -bufsize 5M Here is the example command: time ffmpeg -hide_banner -hwaccel cuda -hwaccel_output_format cuda -i source. For example to play the 10bpp sequences provided by the HEVC standardization which are in 4:2:0 10bpp, you can use the following ffmpeg command: $ ffplay -video_size 2560x1600 -pixel_format yuv420p10le SteamLocomotiveTrain_2560x1600_60_10bit_crop. Try moving format=p010le before hwupload. You can also check x264 for supported bit depths: [] Output bit depth: 8/10. Little and big endian. Using CUDA (on a Pascal 1050 Ti), I expect the corresponding command to be ffmpeg -i input. Without hardware acceleration, a typical command would be ffmpeg -i input. yuv -an \ -vf 'hwupload=extra_hw_frames=64,format=qsv' -c:v hevc_qsv -profile:v main10 output. ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -v verbose -f rawvideo -video_size 1920x1080 -pix_fmt p010le -i input. 10-bit pixel formats are: yuv420p10le, yuv422p10le, yuv444p10le. mkv "hwdownload,format=p010le,format=yuv420p,hwupload_cuda" downloads frames from hardware to system memory in the original format (in this According to the following page, "Encode a 1080p p010le raw yuv input as HEVC main10 profile (supported since Kaby Lake platform)". The "p" in p010le stands for "planar," which means that the luminance and chrominance components are stored in separate planes. There is p010le and p010be. mp4 Also try ffmpeg -pix_fmts to list the available formats. The issue that hevc_nvenc uses pixel format cuda, and we can't use -pix_fmt p010le. Previously you had to compile x264 with --bit-depth=10, and then link your ffmpeg to either an 8-bit or Without hardware acceleration, a typical command would be ffmpeg -i input. mkv -vf "hwdownload,format=p010le,format=yuv420p,hwupload_cuda" -c:v hevc_nvenc -preset slow test. p010le is a 10-bit packed pixel format that stores the luminance and chrominance components in separate bytes. So, it depends, you may wanna look how it works in ffmpeg and VAAPI. rigj dec xylk tbxp hsnax xwpc vsaotp jnaf sotmn mvrge