Page 1 of 1

XAVC-Intra UHD Class 480

Posted: Wed Feb 24, 2021 4:37 pm
by andrezagato
Hi,
I have a new demand to convert files to XAVC-intra Class 480 UHD. But coudn't find it, I look it up and apparently it is still not suported. Is there a way this workflow is possible?

Thanks
André

Re: XAVC-Intra UHD Class 480

Posted: Wed Feb 24, 2021 6:30 pm
by emcodem
Hey,

sorry, currently no way to do it. It needs some funding in the x264 project to get this done. If you are interested and you think you can come up with some budget for this, i might be able to guide you how to start a qualified developer for it (and no, it is not me nor anyone of the ffastrans team ;-))

Re: XAVC-Intra UHD Class 480

Posted: Fri Feb 26, 2021 2:30 pm
by FranceBB
Well, emcodem is true, it's not officially supported... Anyway, although it's true that it's not officially supported by x264 and it should be better to make the x264 guys officially support it, if you have a video server / playout server, I might ask you to test my dirty hack. It might not work at all and not even be played which would make it utterly useless, but this is what I had in mind:

Andre, are you familiar with Avisynth and x264?
This is the BAT I would be using to make a test:

Code: Select all

avs4x264mod.exe "AVS Script.avs" --x264-binary "x264-10b.exe" --input-depth 16 --preset medium --profile high422 --level 5.2 --keyint 1 --no-cabac --slices 8 --bitrate 960000 --vbv-maxrate 960000 --vbv-bufsize 960000 --deblock -4:-4 --overscan show --colormatrix bt2020nc --range tv --log-level info --thread-input --transfer smpte2084 --colorprim bt2020 --videoformat component --nal-hrd cbr --output-csp i422 --output-depth 10 --output "\\VBOXSVR\Share_Windows_Linux\temp\raw_video.h264"

audio.exe -i "\\VBOXSVR\Share_Windows_Linux\temp\raw_video.h264" -i "AVS Script.avs" -map 0:0 -c:v copy -map 1:1 -c:a pcm_s24le -ar 48000 -f mxf "\\VBOXSVR\Share_Windows_Linux\temp\pre-final_output_UHD.mxf"

bmxtranswrap.exe -p -y 10:00:00:00 -o "\\mibctvan000\Ingest\MEDIA\temp\final_output_UHD.mxf" "\\VBOXSVR\Share_Windows_Linux\temp\pre-final_output_UHD.mxf"

pause
Image

it takes a 16bit interleaved Avisynth input in BT2020 HDR PQ 1000 nits and encodes a temporary 10bit planar h.264 video file and then takes that and the Avisynth input to generate a final mxf file.
From what I understand, the UHD standard for XAVC Intra Class 480 is 50p 10bit planar for PAL and 60p 10bit planar for NTSC running at a whopping 960 Mbit/s while Intra Class 300 uses 500 Mbit/s.
I'm gonna send you some very experimental files in UHD 50p 4:2:2 10bit planar in Intra Class 480 and I would like you to test it on your system and tell me if they work or not.
It might or might not work, so I can't guarantee you any compatibility, but it's worth trying as you can test my experiments.

Test 1: UHD 4:2:2 50p 10bit planar HDR PQ 1000 nits BT2100 (Intra Class 480)
Test 2: UHD 4:2:2 25p 10bit planar HDR PQ 1000 nits BT2100 (Intra Class 480)
Test 3: UHD 4:2:2 50p 10bit planar HDR HLG 1000 nits BT2100 (Intra Class 480)
Test 4: UHD 4:2:2 25p 10bit planar HDR HLG 1000 nits BT2100 (Intra Class 480)
Test 5: UHD 4:2:2 50p 10bit planar SDR 100 nits BT2020 (Intra Class 480)
Test 6: UHD 4:2:2 25p 10bit planar SDR 100 nits BT2020 (Intra Class 480)
Test 7: FULL HD 4:2:2 25i 10bit planar SDR 100 nits BT709 (Intra Class 480)


Hopefully at least one of them is gonna play.

EDIT: Let me know if/when you wanna test them, I deleted them from Google Drive 'cause I needed space. I will send them to you via Aspera if you want to test them.

In the meantime, this is the resulting file:

Image

and it looks like it's correctly recognized by AVID Media Composer:

Image

But I can't guarantee how it's gonna behave on a real hardware playout port, that's what I'm planning to find out.

Stay tuned.


EDIT 2: Ok, I tested it on our playout ports and both Intra Class 300 and 480 play just fine, so it seems like we might have some sort of compatibility, although not officially supported by x264.

Re: XAVC-Intra UHD Class 480

Posted: Tue Apr 27, 2021 5:34 pm
by FranceBB
An update on where we are with this.
We have been working on this and we've been testing this in a local x264 fork on GitHub: https://github.com/jpsdr/x264/tree/master

And you can get the builds we made here: https://github.com/jpsdr/x264/releases

Using the builds, you can easily call x264.exe via the command line like so:

x264.exe "AVS Script.avs" --avcintra 50 --avcintra-flavor sony

x264.exe "AVS Script.avs" --avcintra 100 --avcintra-flavor sony

x264.exe "AVS Script.avs" --avcintra 200 --avcintra-flavor sony

x264.exe "AVS Script.avs" --avcintra 300 --avcintra-flavor sony

x264.exe "AVS Script.avs" --avcintra 480 --avcintra-flavor sony


All credits to "ifb" for showing me the quantization matrix, to JPSD (Jean Philippe Scotto di Rinaldi) for actually merging the code to his branch and provide t_mod builds, to Steipal, emcodem and momocampo for bearing with me in this journey and to algie for testing on NLE.
The files produced with this build have been tested on the Versio Playout Server at Sky and they work (both Class 300 and Class 480).

However, our implementation is custom-made and still has to be merged in the official x264 master which is not on GitHub but it's rather on GitLab.
This is the Pull Request, if you're interested, please comment and ask for it to be merged.
The more we comment the more we'll bring it to the attention of the official x264 developers: https://code.videolan.org/videolan/x264 ... requests/6