Color space problems again
After much duress, I solved my color space problems by not specifying any color space. My mp4s look good enough on most browsers and operating systems. My understanding is they just use a generic sRGB profile to display the mp4. I even bought a generic monitor and used the default setting while creating the videos which uses just a generic sRGB profile I think. Anyway, I was very happy. But my streaming encoder had different plans. I'm not entirely sure but I think it is assuming that my unspecified color space is rec601. If I specified it as sRGB, it would probably encode fine.
So that's my problem. How do I take my lossless animation .movs (which I use to create my mp4s) and which needless to say do not specify a color space (in Adobe Bridge Metadata, it says the color space is untagged), how do I take my .movs and just gently tag the color space to sRGB? (Rec709 might be a good choice also that my streaming encoder might accept.) I'm happy to use ffmpeg if somebody knows how. I use it for other things, so I'm perfectly comfortable with that. Hell, at this point, I'd buy some expensive software. HELP!!
Thanks in advance
JERRY SAID: My understanding is they just use a generic sRGB profile to display the mp4
They don't use any profile AT ALL.
A "profile" implies color management, and video is normally NOT color managed. Video is normally "rendered with a specific display target".
What is color management: Color management is a process where ICC color profiles are used to convert image date from one color space to another color space, using either a "connection color space" or a "device link".
What is rendering for a specific target: This means the image data is rendered in such a way that when played back through a specific target device without further manipulation, it looks as intended. A "specific target device" means an sRGB monitor, or a Rec886 monitor, etc.
When you work with color management turned off, then you are de-facto working to render to a specific target — this means that your display monitor must be of the same target that is your render intent. You chose an sRGB monitor, so that *particular* sRGB monitor becomes your render target. Ideally you have used a hardware profiling device to create a system profile specific for that monitor so that it is as close to the baseline sRGB target as possible.
After Effects default for import of non-tagged images is sRGB. This can be changed in the "interpretations rules.txt" file.
Some other things I want to clear up: Just because your animation movs are untagged does NOT mean they have no color space — they certainly do!! They have a gamma curve and look the way they do based on the color primaries of your target.
Also: sRGB and Rec709 have identical whitepoint and color primaries. The ONLY difference is the transfer curve (aka gamma). Rec601 and Rec709 have identical transfer curves and whitepoint, but they have very slightly different color primaries (slight enough that it is common for Rec601 to simply be interpreted as Rec709).
As for your streaming encoder assuming any particular profile: is it CHANGING the look on output? What encoder are you using?
VFX & Title Supervisor
The encoder is the Azure Standard Encoder. *What's really annoying is that even if I skip encoding and just add a manifest to an mp4, it changes the color. Support will contact me today.*
I gave up on profiling and just did a lot of device testing. We're only interested in playback in browsers. I looked at the results in many different browsers. I went to the store and looked for the "median" monitor. The one that was most similar to all the others.
It probably is a gamma issue.
My question is about exporting. My hope was that if I put mp4s with encoded color profiles into Azure then all would work. But I cannot find any practicable way to encode color profiles in outputs except for tiff sequences that have no audio and require God knows what workaround.
In Bridge, when I look at the Metadata, there does not seem to be anyway to get a color profile to appear. And research on the internets indicates that no Adobe product (AE, Pr, AME) actually delivers outputs with embedded profiles for sRGB or Rec709 or for animation. Maybe audioless sequences are the exception.
Is there a way to export with a color profile?
If I could export with media tagged with sRGB, then that might make Azure happy.
If I could export with media converted to Rec709 and tagged with 709, then that might make Azure happy.
(I have a related question about Adobe, but I don't want to over complicate the discussion.)
In general, their are two tendencies in these color discussion. The rationalists push for deep understanding of one of the most arcane subjects in media. The empiricists push for lots of testing. I'm firmly in the latter camp. I just need to get things working. Even if I understood it all, I'd forget it in a week.
How can I get color space tags on my videos? That is the only question that will allow me to figure out what Azure wants. Adobe really seems useless. Am I wrong? If not, then can I do it with FFMPEG?
Thanks Andrew for taking the time.
Andrew, I just noticed your response to the older post.
I'm not interested in different browsers/computers. I can limit myself to just one of my computers. Take your pick. If I play the video locally through my browser, it looks one way. If I instead stream or progressively download it from Azure, then it looks another way. And I as I said above, this happens even if I bypass Azure's encoding.
There is a tiny chance that my online player, Bitmovin, is tweaking gamma, but they don't seem to discuss color spaces at all, so I tend to doubt they are responsible. Most likely, Azure is assuming my video is Rec709 when it is really sRGB. Somehow I have to embed a profile. But Adobe seems to give me now way to embed a profile.
This all seems quite absurd. Why can't I just add the metadata?? Oh, by the way, this is sRGB!! Or convert it and then say, oh, by the way this is Rec709? Adobe has a zillion color space settings for import and working, but very little for outputs.
If I could tag my videos, then I could do some experiments (empiricist that I am) with Azure and probably not even have to waste anybody's time.
To repeat: How on earth can I embed the color space? Surely, somebody, somewhere can do it. I think my question is very very clear.
I used ffprobe on the mp4 that I get from Adobe and it says something about rec709. But I changed the matrix from 709 to 601 and voila, the stream looks good.
So, it seems it some sort of gamma issue with Azure streaming.
But oddly if I convert to HLS locally and upload that to dumb storage, then the videos are again too dark.
So it seems there are gamma problems in other places also.
At least I have a workaround (#985). ;)