FFmpeg 4.00/4.01 is said to come with an experimental magicyuv encoder. However I have been unable to find any documentation about it.
Trying ffmpeg –codecs doesn´t seem to identify a magicyuv encoder .Do you know how the encoder can be called ( c:v magicyuv ?? ) , resolutions and options supported.? I was interested to try the encoder but I do lack the minimal information needed.
I am not directly involved in ffmpeg development with regards to MagicYUV, so I can't give any help regarding how it can be used and what features does it support.
I occasionally get contacted by a guy from the ffmpeg devs, he was the one who did the initial MagicYUV decoder in ffmpeg, and from his recent questions I could infer he was working on an encoder. He usually asks about the MagicYUV format and stuff, but in general he is not too chatty, so our communication is mostly limited to short clauses 🙂
From his last email I can say that the MagicYUV encoder in ffmpeg was incomplete (albeit working to a degree) with one crucial part missing, which prevents multithreaded per-frame decoding, which kinda defeats the whole purpose of it. As ffmpeg can encode/decode multiple frames in parallel at a higher level, it can mitigate/workaround this limitation to a degree, but it is suboptimal.
As an additional note, the speed of MagicYUV comes from it's specific implementation in practice, not from the underlying theory. So even though an implementation is (or will be) available in ffmpeg, I'll be really curious about how well (or not well) it is going to perform.
After some trial and error ,it seems to work like this, as the encoder is not activated by default because it is an experimental version
ffmpeg.exe -i "C:\test.avi" -strict -2 -vcodec magicyuv -y "R:\Magicyuv_test.avi"
it seems to support all major 8 bit formats but not 10 bit formats. Still trying to discover the options supported
Additional info
Encoder magicyuv [MagicYUV video]:
General capabilities: exp threads
Threading capabilities: frame
Supported pixel formats: gbrp gbrap yuv422p yuv420p yuv444p yuva444p gray
magicyuv AVOptions:
-pred <int> E..V..... Prediction method (from 1 to 3) (default left)
left E..V.....
gradient E..V.....
median E..V.....
example
ffmpeg -i "C:\test.avi" -strict -2 -c:v magicyuv -pred median -pix_fmt yuv444p -y "R:\Magicyuv_test.avi"
Please help, I have a similar question in regards to using magicyuv codec through OBS, which uses ffmpeg.
I have a thread on obs forums here:
Please help me, I am trying to get OBS to use pixel format yuv 4:2:0