You have not much choice- x265, either itself or in ffmpeg.
This takes RGB based input MOV file- originally guy used Cineform, reads it with ffmpeg, converts to 10bit YUV 4:2:0 data and pipes to x265 encoder, which outputs elementary h265 stream. You have to then mux it into m2ts, mp4 etc. with e.g. TsMuxer or MP4Box (or ffmpeg).
ffmpeg.exe -nostats -i "input.mov" -strict -1 -vf scale=out_color_matrix=bt2020:out_h_chr_pos=0:out_v_chr_pos=0,format=yuv420p10 -f yuv4mpegpipe - |
x265_10bit.exe - --y4m --uhd-bd --crf 13 --tune grain --colorprim bt2020 --transfer smpte-st-2084 --colormatrix bt2020nc
--master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)" --max-cll "1000,400" --output "output.hevc"
--master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)" --max-cll "1000,400"
this is your metadata bit. I don't know how to calculate these numbers, except 1000,400 which are I think max and average luma values (precisely: maximum content light level and maximum frame average light level)
If you want to use EXR sequence than you change to: -i "test_%06d.exr" (assuming your sequence starts with 1 and uses 6 digit padding: test_000001.exr, test_000002.exr....).
Many Sony, LG etc sample files don't have this metadata at all. It's still a bit of grey area
You can post 1 sec of 10bit RGB MOV sample and I will encode it.
update:These number are for D65P3 1000-nits.
Example for D65P3 1000-nits:
+ Example for a P3D65 1000-nits monitor, where G(x=0.264, y=0.690),
+ B(x=0.150, y=0.060), R(x=0.680, y=0.320), WP(x=0.3127, y=0.3290),
+ L(max=1000, min=0.0001):
G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)
based on x265 developers info:
https://mailman.videolan.org/pipermail/ ... 10020.html