My laptop can't handle 10bit H.265 / HEVC videos, so I'm looking to convert them to 10bit H.264. How do I do this using, say, ffmpeg, with the least quality loss? And how can I convert 10-bit H.265 to 8-bit H.265?
2 Answers
10-bit/12-bit HEVC to 8-bit H.264
ffmpeg -i input -map 0 -c:v libx264 -crf 18 -vf format=yuv420p -c:a copy output.mkv
-map 0
will include all streams (default stream selection only selects 1 stream per type). See FFmpeg Wiki: Map.Adjust the
-crf
value to provide the desired level of quality. Add the-preset
option if you want to adjust encoding speed. See FFmpeg Wiki: H.264 for more info on-crf
and-preset
.Uses the format filter to choose the
yuv420p
pixel format to create 8-bit output.
10-bit/12-bit HEVC to 10-bit H.264
ffmpeg -i input -map 0 -c:v libx264 -crf 18 -c:a copy output.mkv
-map 0
will include all streams (default stream selection only selects 1 stream per type). See FFmpeg Wiki: Map.Adjust the
-crf
value to provide the desired level of quality. Add the-preset
option if you want to adjust encoding speed. See FFmpeg Wiki: H.264 for more info on-crf
and-preset
.No need for the format filter in this case.
10-bit/12-bit HEVC to 8-bit HEVC
ffmpeg -i input -map 0 -c:v libx265 -crf 20 -vf format=yuv420p -c:a copy output.mkv
-map 0
will include all streams (default stream selection only selects 1 stream per type). See FFmpeg Wiki: Map.Adjust the
-crf
value to provide the desired level of quality. Add the-preset
option if you want to adjust encoding speed. See FFmpeg Wiki: HEVC / H.265 for more info on-crf
and-preset
.Uses the format filter to choose the
yuv420p
pixel format to create 8-bit output.
12-bit HEVC to 10-bit HEVC
ffmpeg -i input -map 0 -c:v libx265 -crf 20 -vf format=yuv420p10le -c:a copy output.mkv
-map 0
will include all streams (default stream selection only selects 1 stream per type). See FFmpeg Wiki: Map.Adjust the
-crf
value to provide the desired level of quality. Add the-preset
option if you want to adjust encoding speed. See FFmpeg Wiki: HEVC / H.265 for more info on-crf
and-preset
.Uses the format filter to choose the
yuv420p10le
pixel format to create 10-bit output. Other 10-bit pixel formats supported by libx265 areyuv422p10le
&yuv444p10le
, but your player may not like these. Seeffmpeg -h encoder=libx265
for additional supported pixel formats.
-
-
1
-
4Adding
-map 0
to the commands above will preserve subtitles and other additional streams. Dec 7, 2018 at 9:06 -
PS4 only allow 8bit H264/AVC. But if use ffmpeg convert the 10bit H265/HEVC to H624, with preset, you will get the 10bit H264, which is not recognized on PS4 vedio player. This comment mark it useful for getting compability on PS4. Sep 14, 2019 at 3:04
-
Handbrake can handle most anything.
The release notes mention 10-bit support.
The UI has all the options. I suggest you start there and get familiar with it.
See quick start guide.
There is also a CLI that can be downloaded here.
And the guide that has all the options laid out.
-
-
1Added links to post, start with the UI - it has a queue so you can load up an entire folder at once if needed.– BlueGIDec 5, 2018 at 14:58