gopro / labs

GoPro Labs
Apache License 2.0
476 stars 40 forks source link

Feature Request: Change color luminance from "pc" (default) to "tv" #68

Closed novaslip closed 1 year ago

novaslip commented 2 years ago

The Hero10 has a big problem with color luminance, it is using "pc" which makes a lot darker and ruins also the white balance. An example for this: https://community.gopro.com/s/question/0D53b00008BtgH6CAJ/color-space-is-wrong-when-playing-hero10-video-files-in-media-player?language=en_US (in the post is not explained that it needs to change luminance, i tested this by myself with ffmpeg and i got same colors as youtube does by changing from "pc" to "tv", so i presume this is what it needs to be changed) If you own a hero10 or maybe hero9, you can notice that file raws recorded are more darker than when uploaded on youtube after.

I know maybe this is not made for labs, and i should probably tell this directly to the gopro assistance, but if there's a way to fix this by using QR code would be awesome. Thanks

dnewman-gpsw commented 2 years ago

This is not a bug in GoPro or something Labs can change. GoPro correctly sets the metadata for full range, yet some tools ignore this metadata so it is the bug of those tools. Example of player that ignores the metadata is VLC, so don't use that. We use full range as that offers more quality, less banding, with all 256 intensity levels versus 219 used in TV range (white-235, black-16.) This is not new, all GoPro HERO cameras since the HERO HD have used full range.

novaslip commented 2 years ago

This is not a bug in GoPro or something Labs can change. GoPro correctly sets the metadata for full range, yet some tools ignore this metadata so it is the bug of those tools. Example of player that ignores the metadata is VLC, so don't use that. We use full range as that offers more quality, less banding, with all 256 intensity levels versus 219 used in TV range (white-235, black-16.) This is not new, all GoPro HERO cameras since the HERO HD have used full range.

I see, thanks for the reply I tried several video players but all of them give me the wrong colors (too much dark colors, they don't look natural) can you recommend me a good one that gives the same colors as youtube does? From VLC or any video player i used, i have to re-encode with ffmpeg to get the correct colors, it is not an option to do so since requires a lot of time specially for 4k videos.

dnewman-gpsw commented 2 years ago

Can you list players you are having trouble with? One of the best players now for quality and performance is our own GoPro Player. Still my favourite for playback and manipulation is VirtualDub2 (Windows only.) Standard Windows Player TV & Movies is correct, so is Media Player however the older Windows Media Player is not supporting full range. Other tools that work DaVinci Resolve, Premiere Pro, FCP-X, all your editors should work. On the Mac, never use QuickTime Player, notorous for bad gamma curves.

novaslip commented 2 years ago

Can you list players you are having trouble with? One of the best players now for quality and performance is our own GoPro Player. Still my favourite for playback and manipulation is VirtualDub2 (Windows only.) Standard Windows Player TV & Movies is correct, so is Media Player however the older Windows Media Player is not supporting full range. Other tools that work DaVinci Resolve, Premiere Pro, FCP-X, all your editors should work. On the Mac, never use QuickTime Player, notorous for bad gamma curves.

I have tried VirtualDub2 as you recommended and the colors are good as youtube does, but the video player uses all of my CPU and the video lags a bit (5K60p), i have tried both directx 9 and 11 but i see no difference of performance. I noticed VLC uses my GPU for the video player, do you know how to do the same with VirtualDub2?

I'm using the Default Media Player (Windows 7) with the K-Lite Codec Pack which allows to choose between full range or tv, but still it produces wrong colors on both settings.

Maybe we have to add informations about the full range with ffmpeg? So VLC and any other video player will use those one, but i don't know how to do it without re-econding.

As for the GoPro own player, i didn't know there was one. Can you give me download link? I will try this one too.

Thank you mate

dnewman-gpsw commented 2 years ago

Are you really on Windows 7? I'm not sure what support is good on that OS, although I happy to hear VirtualDub2 work there. VirtualDub2 get the color correct because it doesn't rely on the GPU, many of these errors are in the graphics drivers. Hardware accelerated decode is very nice, when the GPU does the correct YUV To RGB conversions. I don't think you can install the GoPro Player on 7, it is available from the Windows Store (free) https://apps.microsoft.com/store/detail/gopro-player-reelsteady/9MW2BVRCG0B2?hl=en-us&gl=US