tonioni / WinUAE

WinUAE Amiga emulator
http://www.winuae.net/
552 stars 90 forks source link

question / feature request: allow recording in full color range #264

Open tari3x opened 12 months ago

tari3x commented 12 months ago

Currently the color range of the recordings seems to be limited:

ffprobe -f lavfi movie="capture.avi",signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
...
[FRAME]
TAG:lavfi.signalstats.YMIN=16
TAG:lavfi.signalstats.YMAX=235
[/FRAME]

I suspect this is expected since a real amiga would output to a TV set which has limited range. But just in case I'm confused here's a feature request - please allow to record in full color range.

Afaik utvideo + avi don't have anywhere to mark the video as full range, so it would need to be mkv.

luvwagn commented 12 months ago

Could also be done into an MP4 container, with AVC/H264 as the encoding type?

tonioni commented 11 months ago

AVI recording was done by someone else long, long, long time ago and I am not interested in rewriting it to use some modern method (video recording is probably my lowest priority feature ever..). Perhaps if there is some really good license compatible open source example somewhere.

luvwagn commented 11 months ago

for WinUAE, why not just take advantage of inbox codec and recording support using Media Foundation? Pretty easy to use an IMFSinkWriter to push audio+video samples into an MP4 container. It can be done behind an abstraction layer of some kind, or whatever already exists for AVI - so that on non-Windows systems, implementations can be "plugged in" as well


From: Toni Wilen @.> Sent: Sunday, December 3, 2023 4:40 AM To: tonioni/WinUAE @.> Cc: luvwagn @.>; Comment @.> Subject: Re: [tonioni/WinUAE] question / feature request: allow recording in full color range (Issue #264)

AVI recording was done by someone else long, long, long time ago and I am not interested in rewriting it to use some modern method (video recording is probably my lowest priority feature ever..). Perhaps if there is some really good license compatible open source example somewhere.

— Reply to this email directly, view it on GitHubhttps://github.com/tonioni/WinUAE/issues/264#issuecomment-1837468769, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AP2ELBUYYEVQPC5QW3PVOTDYHRXKBAVCNFSM6AAAAAA744DXQWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZXGQ3DQNZWHE. You are receiving this because you commented.Message ID: @.***>

tari3x commented 11 months ago

video recording is probably my lowest priority feature ever..

That's sad actually - I suspect recording amiga demos is a rather sizeable use case.

tonioni commented 11 months ago

I don't think it is that simple, for example does it support uncompressed? Thats very nice feature of AVI stuff, you can select uncompressed (can easily test if recording is exactly right) and IMHO it is better to record it in some non-lossy format (AVI has non-lossy formats which someone really wants to have), edit the file and then convert it to whatever format you want.

Anyway, as I said, I need example sources that is proven working, that includes CODEC selection GUI. I am not interested in reading some API docs that usually always suck and assume you already know what are you doing :) (It does not need to be emulator, just some program that records something)

johnnovak commented 11 months ago

I don't think it is that simple, for example does it support uncompressed? Thats very nice feature of AVI stuff, you can select uncompressed (can easily test if recording is exactly right) and IMHO it is better to record it in some non-lossy format (AVI has non-lossy formats which someone really wants to have), edit the file and then convert it to whatever format you want.

Anyway, as I said, I need example sources that is proven working, that includes CODEC selection GUI. I am not interested in reading some API docs that usually always suck and assume you already know what are you doing :) (It does not need to be emulator, just some program that records something)

Video encoding is a huge rabbit hole agreed. We're experiencing that in DOSBox Staging now 😅 Lossless is the best option, then people can encode that however they like 🤷🏻 ...unless you want to mess around with vendor-specific APIs to add hardware accelerated encoding support, which is nice, but fiddly.

luvwagn commented 11 months ago

What formats can I get the frames in as input - D3D textures with a clear DXGI format? raw RGB data per frame? Let me know which works best, and I'll happily code up an e2e example and share it with you. I'm a part owner of these technologies in Windows.


From: John Novak @.> Sent: Thursday, December 28, 2023 6:03 PM To: tonioni/WinUAE @.> Cc: luvwagn @.>; Comment @.> Subject: Re: [tonioni/WinUAE] question / feature request: allow recording in full color range (Issue #264)

I don't think it is that simple, for example does it support uncompressed? Thats very nice feature of AVI stuff, you can select uncompressed (can easily test if recording is exactly right) and IMHO it is better to record it in some non-lossy format (AVI has non-lossy formats which someone really wants to have), edit the file and then convert it to whatever format you want.

Anyway, as I said, I need example sources that is proven working, that includes CODEC selection GUI. I am not interested in reading some API docs that usually always suck and assume you already know what are you doing :) (It does not need to be emulator, just some program that records something)

Video encoding is a huge rabbit hole agreed. We're experiencing that in DOSBox Staging now 😅 Lossless is the best option, then people can encode that however they like 🤷🏻 ...unless you want to mess around with vendor-specific APIs to add hardware accelerated encoding support, which is nice, but fiddly.

— Reply to this email directly, view it on GitHubhttps://github.com/tonioni/WinUAE/issues/264#issuecomment-1871674884, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AP2ELBXVWXVWEKPEAXMLBIDYLYQHRAVCNFSM6AAAAAA744DXQWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZRGY3TIOBYGQ. You are receiving this because you commented.Message ID: @.***>