[FFmpeg-user] overlaying a clut over a picture

Michael Koch astroelectronic at t-online.de
Mon Jan 14 08:28:46 EET 2019


When I create a color-look-up-table with this command line, the result 
is a 512x512 clut saved as 16-bit PNG. It works as expected and I 
checked that the top left pixel is black (R=0, G=0, B=0) and the bottom 
right pixel is white (R=65026, G=65026, B=65026).

c:\ffmpeg\ffmpeg -f lavfi -i haldclutsrc=8 -frames 1 -pix_fmt rgb48be -y 
clut.png


In the next example I wanted to extract one frame from a video, overlay 
the clut in the top left corner, and save it as 16-bit PNG. I need 
16-bit PNG because my video is 10-bit. At first glimpse the result looks 
good, but a closer examination finds that the top left pixel is not pure 
black, it's R=0, G=1285, B=0, and the bottom right pixel of the clut (at 
coordinates 511,511) is not pure white, it's R=65535, G=63736, B=65535. 
Why are the colors wrong?

c:\ffmpeg\ffmpeg -ss 5 -i P1000099.mov -f lavfi -i haldclutsrc=8 
-filter_complex overlay -frames 1 -pix_fmt rgb48be -y Image_with_CLUT.png

Below is the console output.

Thanks,
Michael



C:\Users\mKoch\Desktop>c:\ffmpeg\ffmpeg -ss 5 -i P1000099.mov -f lavfi 
-i haldc
lutsrc=8 -filter_complex overlay -frames 1 -pix_fmt rgb48be -y 
Image_with_CLUT.p
ng
ffmpeg version N-92926-g2d580d727c Copyright (c) 2000-2019 the FFmpeg 
developers

   built with gcc 8.2.1 (GCC) 20181201
   configuration: --enable-gpl --enable-version3 --enable-sdl2 
--enable-fontconfi
g --enable-gnutls --enable-iconv --enable-libass --enable-libbluray 
--enable-lib
freetype --enable-libmp3lame --enable-libopencore-amrnb 
--enable-libopencore-amr
wb --enable-libopenjpeg --enable-libopus --enable-libshine 
--enable-libsnappy --
enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx 
--enable-l
ibwavpack --enable-libwebp --enable-libx264 --enable-libx265 
--enable-libxml2 --
enable-libzimg --enable-lzma --enable-zlib --enable-gmp 
--enable-libvidstab --en
able-libvorbis --enable-libvo-amrwbenc --enable-libmysofa 
--enable-libspeex --en
able-libxvid --enable-libaom --enable-libmfx --enable-amf 
--enable-ffnvcodec --e
nable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec 
--enable-dxva2 --enab
le-avisynth --enable-libopenmpt
   libavutil      56. 25.100 / 56. 25.100
   libavcodec     58. 43.100 / 58. 43.100
   libavformat    58. 25.100 / 58. 25.100
   libavdevice    58.  6.101 / 58.  6.101
   libavfilter     7. 46.101 /  7. 46.101
   libswscale      5.  4.100 /  5.  4.100
   libswresample   3.  4.100 /  3.  4.100
   libpostproc    55.  4.100 / 55.  4.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000404340] decoding for stream 0 failed
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'P1000099.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 537986816
     compatible_brands: qt  pana
     creation_time   : 2019-01-03T06:32:13.000000Z
     com.panasonic.Semi-Pro.metadata.xml: <?xml version="1.0" 
encoding="UTF-8" st
andalone="no" ?>
                     : <ClipMain 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst
ance" xmlns="urn:schemas-Professional-Plug-in:Semi-Pro:ClipMetadata:v1.0">
                     :   <ClipContent>
                     : 
<GlobalClipID>060A2B340101010501010D2113000000EFE8D053
D0B35534437E1060C1650131</GlobalClipID>
                     : <Duration>1284</Duration>
                     : <EditUnit>1/25</EditUnit>
                     :     <EssenceList>
                     :       <Video>
                     :         <Codec BitRate="150">H264_422_LongGOP</Codec>
                     : <ActiveLine>2496</ActiveLine>
                     : <ActivePixel>3328</ActivePixel>
                     : <BitDepth>10</BitDepth>
                     : <FrameRate>25p</FrameRate>
                     : <TimecodeType>NonDrop</TimecodeType>
                     : <StartTimecode>19:15:30:18</StartTimecode>
                     :       </Video>
                     :       <Audio>
                     : <Channel>2</Channel>
                     : <SamplingRate>48000</SamplingRate>
                     : <BitsPerSample>16</BitsPerSample>
                     :       </Audio>
                     :     </EssenceList>
                     :     <ClipMetadata>
                     :       <Rating>0</Rating>
                     :       <Access>
                     : <CreationDate>2019-01-03T06:32:13+02:00</CreationD
ate>
                     : <LastUpdateDate>2019-01-03T06:32:13+02:00</LastUpd
ateDate>
                     :       </Access>
                     :       <Device>
                     : <Manufacturer>Panasonic</Manufacturer>
                     : <ModelName>DC-GH5S</ModelName>
                     :       </Device>
                     :       <Shoot>
                     : <StartDate>2019-01-03T06:32:13+02:00</StartDate>
                     :       </Shoot>
                     :     </ClipMetadata>
                     :   </ClipContent>
                     :   <UserArea>
                     :     <AcquisitionMetadata 
xmlns="urn:schemas-Professional-P
lug-in:P2:CameraMetadata:v1.2">
                     :       <CameraUnitMetadata>
                     :         <Gamma>
                     : <CaptureGamma>V-LogL</CaptureGamma>
                     :         </Gamma>
                     :         <Gamut>
                     : <CaptureGamut>V-Gamut</CaptureGamut>
                     :         </Gamut>
                     :       </CameraUnitMetadata>
                     :     </AcquisitionMetadata>
                     :   </UserArea>
                     : </ClipMain>
                     :
   Duration: 00:00:51.36, start: 0.000000, bitrate: 152983 kb/s
     Stream #0:0(und): Video: h264 (High 4:2:2) (avc1 / 0x31637661), 
yuv422p10le(
pc, bt709), 3328x2496 [SAR 1:1 DAR 4:3], 149773 kb/s, 25 fps, 25 tbr, 
90k tbn, 5
0 tbc (default)
     Metadata:
       creation_time   : 2019-01-03T06:32:13.000000Z
       timecode        : 19:15:30:18
     Stream #0:1(und): Audio: pcm_s16be (twos / 0x736F7774), 48000 Hz, 
stereo, s1
6, 1536 kb/s (default)
     Metadata:
       creation_time   : 2019-01-03T06:32:13.000000Z
       timecode        : 19:15:30:18
     Stream #0:2(und): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
     Metadata:
       creation_time   : 2019-01-03T06:32:13.000000Z
       timecode        : 19:15:30:18
Input #1, lavfi, from 'haldclutsrc=8':
   Duration: N/A, start: 0.000000, bitrate: N/A
     Stream #1:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 512x512 
[SAR 1:1
  DAR 1:1], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
   Stream #0:0 (h264) -> overlay:main
   Stream #1:0 (rawvideo) -> overlay:overlay
   overlay -> Stream #0:0 (png)
Press [q] to stop, [?] for help
[swscaler @ 000000000d78ee80] No accelerated colorspace conversion found 
from yu
va420p to rgb48be.
Output #0, image2, to 'Image_with_CLUT.png':
   Metadata:
     major_brand     : qt
     minor_version   : 537986816
     compatible_brands: qt  pana
     com.panasonic.Semi-Pro.metadata.xml: <?xml version="1.0" 
encoding="UTF-8" st
andalone="no" ?>
                     : <ClipMain 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst
ance" xmlns="urn:schemas-Professional-Plug-in:Semi-Pro:ClipMetadata:v1.0">
                     :   <ClipContent>
                     : 
<GlobalClipID>060A2B340101010501010D2113000000EFE8D053
D0B35534437E1060C1650131</GlobalClipID>
                     : <Duration>1284</Duration>
                     : <EditUnit>1/25</EditUnit>
                     :     <EssenceList>
                     :       <Video>
                     :         <Codec BitRate="150">H264_422_LongGOP</Codec>
                     : <ActiveLine>2496</ActiveLine>
                     : <ActivePixel>3328</ActivePixel>
                     : <BitDepth>10</BitDepth>
                     : <FrameRate>25p</FrameRate>
                     : <TimecodeType>NonDrop</TimecodeType>
                     : <StartTimecode>19:15:30:18</StartTimecode>
                     :       </Video>
                     :       <Audio>
                     : <Channel>2</Channel>
                     : <SamplingRate>48000</SamplingRate>
                     : <BitsPerSample>16</BitsPerSample>
                     :       </Audio>
                     :     </EssenceList>
                     :     <ClipMetadata>
                     :       <Rating>0</Rating>
                     :       <Access>
                     : <CreationDate>2019-01-03T06:32:13+02:00</CreationD
ate>
                     : <LastUpdateDate>2019-01-03T06:32:13+02:00</LastUpd
ateDate>
                     :       </Access>
                     :       <Device>
                     : <Manufacturer>Panasonic</Manufacturer>
                     : <ModelName>DC-GH5S</ModelName>
                     :       </Device>
                     :       <Shoot>
                     : <StartDate>2019-01-03T06:32:13+02:00</StartDate>
                     :       </Shoot>
                     :     </ClipMetadata>
                     :   </ClipContent>
                     :   <UserArea>
                     :     <AcquisitionMetadata 
xmlns="urn:schemas-Professional-P
lug-in:P2:CameraMetadata:v1.2">
                     :       <CameraUnitMetadata>
                     :         <Gamma>
                     : <CaptureGamma>V-LogL</CaptureGamma>
                     :         </Gamma>
                     :         <Gamut>
                     : <CaptureGamut>V-Gamut</CaptureGamut>
                     :         </Gamut>
                     :       </CameraUnitMetadata>
                     :     </AcquisitionMetadata>
                     :   </UserArea>
                     : </ClipMain>
                     :
     encoder         : Lavf58.25.100
     Stream #0:0: Video: png, rgb48be, 3328x2496 [SAR 1:1 DAR 4:3], 
q=2-31, 200 k
b/s, 25 fps, 25 tbn, 25 tbc (default)
     Metadata:
       encoder         : Lavc58.43.100 png
frame=    1 fps=0.1 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A 
speed=0.00517x

video:10533kB audio:0kB subtitle:0kB other streams:0kB global 
headers:0kB muxing
  overhead: unknown


More information about the ffmpeg-user mailing list