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 0will include all streams (default stream selection only selects 1 stream per type). See FFmpeg Wiki: Map.Adjust the
-crfvalue to provide the desired level of quality. Add the-presetoption if you want to adjust encoding speed. See FFmpeg Wiki: H.264 for more info on-crfand-preset.Uses the format filter to choose the
yuv420ppixel 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 0will include all streams (default stream selection only selects 1 stream per type). See FFmpeg Wiki: Map.Adjust the
-crfvalue to provide the desired level of quality. Add the-presetoption if you want to adjust encoding speed. See FFmpeg Wiki: H.264 for more info on-crfand-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 0will include all streams (default stream selection only selects 1 stream per type). See FFmpeg Wiki: Map.Adjust the
-crfvalue to provide the desired level of quality. Add the-presetoption if you want to adjust encoding speed. See FFmpeg Wiki: HEVC / H.265 for more info on-crfand-preset.Uses the format filter to choose the
yuv420ppixel 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 0will include all streams (default stream selection only selects 1 stream per type). See FFmpeg Wiki: Map.Adjust the
-crfvalue to provide the desired level of quality. Add the-presetoption if you want to adjust encoding speed. See FFmpeg Wiki: HEVC / H.265 for more info on-crfand-preset.Uses the format filter to choose the
yuv420p10lepixel 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=libx265for additional supported pixel formats.
- 57,139
- 15
- 118
- 145
-
What about 10bit x265 to 8bit x265? – HappyFace Dec 05 '18 at 21:52
-
1@HappyFace Looks like I misread the question. I added that section. – llogan Dec 05 '18 at 21:57
-
4Adding `-map 0` to the commands above will preserve subtitles and other additional streams. – HappyFace Dec 07 '18 at 09: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. – Alex Chiang Sep 14 '19 at 03:04
-
Consider this answer https://superuser.com/questions/1296374/best-settings-for-ffmpeg-with-nvenc/1549953#1549953 – Sriram Murali May 08 '20 at 17:46
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.
- 267
- 1
- 5
-
-
1Added links to post, start with the UI - it has a queue so you can load up an entire folder at once if needed. – BlueGI Dec 05 '18 at 14:58