News:

--

Main Menu

The LAck of proper support for utvideo codecs

Started by Videograbber, September 16, 2020, 09:11:34 AM

Previous topic - Next topic

Videograbber

Hello!

As you know Ut Video became one of the most important (if not the most important) capture codec, however Avidemux can not handle / decode it, which often results in black preview window.

Can you add proper UTVIDEO decoding in the next release of Avidemux?

Thank you!

eumagga0x2a

Quote from: Videograbber on September 16, 2020, 09:11:34 AMAs you know Ut Video became one of the most important (if not the most important) capture codec

Never heard about this codec.

Quote from: Videograbber on September 16, 2020, 09:11:34 AMCan you add proper UTVIDEO decoding in the next release of Avidemux?

Decoding support for a limited variety of Ut Video formats added: [1], [2], [3], [4]. You might want to try a future nightly build.

Muxing support is provided by MKV and AVI muxers (for now, copy mode only, but adding an encoder should not be difficult).

Urik

Quote from: Videograbber on September 16, 2020, 09:11:34 AMAs you know Ut Video became one of the most important (if not the most important) capture codec
This is an unusual statement. Though I've used UT Video as an intermediary / lossless archival format for various renders/logos/intros for many years, and it is a great free codec, in my experience from articles and conversations online, it's far from being widely used in professional or hobbyist production, where DNX/Prores is mostly used, ( and to lesser extent, Cineform).

If you need to trim those files, I can suggest VirtualDub2 project. Although the playback depends on CPU performance, and likely won't be realtime (at least not for me on a quad-core Intel), it is able to trim and save UT Video in .avi container with "export > stream copy" option.
However, sadly, joining files doesn't work in stream copy mode there.

eumagga0x2a

#3
Quote from: Urik on September 17, 2020, 03:47:07 PMIf you need to trim those files, I can suggest VirtualDub2 project.

Decoding support is now available in the latest Avidemux nightly (currently 200917 from https://avidemux.org/nightly/win64/), can be edited in copy mode and saved as MKV (and also as AVI).

Encoding support should be easy to add.

edit: Playback of 720p@25fps was AFAIR real-time on my 8 years old dual-core. At 4k and 60fps this might have been different.

Urik

Quote from: eumagga0x2a on September 17, 2020, 04:10:45 PMDecoding support is now available in the latest Avidemux nightly
Quote from: eumagga0x2a on September 16, 2020, 02:00:57 PMfor a limited variety of Ut Video formats added
Thanks. I was about to say it doesn't work before I realized RGB/RGBA formats aren't supported yet. The playback of YUV variants (OpenGL for me, as usual, quadcore Intel+Nvidia) is as following:

ULY0 (1080p 50fps 420) plays fine
ULY2 (1080p 50fps 422) plays fine
ULY4 (1080p 50fps 444) stutters
UQY2 (1080p 50fps 422 10-bit) plays fine
UMH2 (1080p 50fps 422) plays fine
UMH4 (1080p 50fps 444) plays fine

any kind of 4K, obviously, stutters heavily, as it does in any other program/player anyway

Frankly, I wasn't even aware of the UMxx formats, apparently, they are a newer "T2" version of codec or something. I searched the web for a couple hours but still couldn't figure out how to encode them through FFmpeg. So I used Adobe Media Encoder to make those.
The UQxx are 10-bit versions, I was able to make the 422 10-bit UQY2 in VirtualDub2, but when I tried 420, it produced a seemingly ok file which however no player or program would decode/play as if decoder was missing, so I couldn't test that.

Personally, I generally use UtVideo for lossless 8-bit RGB/RGBA renders, and Quicktime-wrapped DNX/Prores/Cineform for everything else intraframe.
Although performance-wise, I gotta admit 8-bit UtVideo 420/422 is very competitive with Prores/DNX at up to 1080p while being truly lossless (aside from chroma subsampling).

Will playback of ULxx (RGB/RGBA) flavors of UtVideo be possible to add to Avidemux in future?

eumagga0x2a

Quote from: Urik on September 18, 2020, 01:17:46 PMWill playback of ULxx (RGB/RGBA) flavors of UtVideo be possible to add to Avidemux in future?

Probably yes, requires adding support for corresponding rarely used colorspaces. More of rarely used features = more bugs escaping testing, but I've already opened the Pandora's box.

Last but not least, while the ability to cut in copy mode is definitely nice even for videos in most exotic RGB colorspaces, one should be aware that filtering and re-encoding in Avidemux will inevitably turn them into YUV 420.

Videograbber

Hello eumagga0x2a!

New version of Ut video with NV12 support appeared.

https://www.videohelp.com/software/Ut-Video-Codec-Suite

Can you put it into the Avidemux encoders?

10000X Thanks!
Bye!

Videograbber

Quote from: Urik on September 18, 2020, 01:17:46 PM
Quote from: eumagga0x2a on September 17, 2020, 04:10:45 PMDecoding support is now available in the latest Avidemux nightly
Quote from: eumagga0x2a on September 16, 2020, 02:00:57 PMfor a limited variety of Ut Video formats added
Thanks. I was about to say it doesn't work before I realized RGB/RGBA formats aren't supported yet. The playback of YUV variants (OpenGL for me, as usual, quadcore Intel+Nvidia) is as following:

ULY0 (1080p 50fps 420) plays fine
ULY2 (1080p 50fps 422) plays fine
ULY4 (1080p 50fps 444) stutters
UQY2 (1080p 50fps 422 10-bit) plays fine
UMH2 (1080p 50fps 422) plays fine
UMH4 (1080p 50fps 444) plays fine

any kind of 4K, obviously, stutters heavily, as it does in any other program/player anyway

Frankly, I wasn't even aware of the UMxx formats, apparently, they are a newer "T2" version of codec or something. I searched the web for a couple hours but still couldn't figure out how to encode them through FFmpeg. So I used Adobe Media Encoder to make those.
The UQxx are 10-bit versions, I was able to make the 422 10-bit UQY2 in VirtualDub2, but when I tried 420, it produced a seemingly ok file which however no player or program would decode/play as if decoder was missing, so I couldn't test that.

Personally, I generally use UtVideo for lossless 8-bit RGB/RGBA renders, and Quicktime-wrapped DNX/Prores/Cineform for everything else intraframe.
Although performance-wise, I gotta admit 8-bit UtVideo 420/422 is very competitive with Prores/DNX at up to 1080p while being truly lossless (aside from chroma subsampling).

Will playback of ULxx (RGB/RGBA) flavors of UtVideo be possible to add to Avidemux in future?

The most important thing, that Youtube and Vimeo knows Ut video as input formats since earlier times than they know intermediate formats.

eumagga0x2a

Quote from: Videograbber on September 22, 2020, 01:53:09 PMNew version of Ut video with NV12 support appeared.

https://www.videohelp.com/software/Ut-Video-Codec-Suite

Can you put it into the Avidemux encoders?

Avidemux uses the implementation provided by libavcodec. It doesn't look like FFmpeg already supports NV12 colorspace with Ut Video.

Videograbber

#9
Quote from: eumagga0x2a on September 22, 2020, 09:35:24 PM
Quote from: Videograbber on September 22, 2020, 01:53:09 PMNew version of Ut video with NV12 support appeared.

https://www.videohelp.com/software/Ut-Video-Codec-Suite

Can you put it into the Avidemux encoders?

Avidemux uses the implementation provided by libavcodec. It doesn't look like FFmpeg already supports NV12 colorspace with Ut Video.

However the real internal storage of Ut video in YUV 4:2:0 8bit format ALWAYS remain in YV12. (that is a very good concept for compatibility) NV12 was newly added just as an input/source format, however Ut video still contains the recorded NV12 video in YV12 format, thus the playback is based purely on YV12 as it was before. That's why it is still visible and playable with new Avidemux, despite the source was an NV12 live camcorder picture. So with this solution, there is no compatibility issue even with old libav codecs. It's a clever solution, isn't it? NV12 was important, because all major camcorder manufacturers use only NV12 as YUV 4:2:0 HDMI output format in 4K. Since the output file  transformed the NV12 to YV12 automatically. Avidemux is not a screen recorder neither a capture software, but a linear video editor, so it don't  need to deal with that.
So you don't need to worry about compatibility at all.



eumagga0x2a

So decoding support for the Ut Video variety with NV12 is already present, right?

The possibility of adding encoding support in Avidemux depends on it becoming available in libavcodec and making all the way down to the stable FFmpeg branch used by Avidemux.

Videograbber

#11
Quote from: eumagga0x2a on September 23, 2020, 03:11:54 PMSo decoding support for the Ut Video variety with NV12 is already present, right?

The possibility of adding encoding support in Avidemux depends on it becoming available in libavcodec and making all the way down to the stable FFmpeg branch used by Avidemux.

Yes, it is present, because the internal storage format remained YV12, even if the input was NV12. (it simply swap U and V channels of the original NV12 source if it would be an YV12) I know it sure, the color format of videos from Potplayer and MPC HC player, because their info always prompt the exactcolor format of video files.

It always records all types of YUV 4:2: 8 bit color format sources in YV12 color format.