1

I'm trying to convert H.264 footage from a Panasonic EVA1 camera to Apple ProRes with ffmpeg. However no matter which setting I use, the output file has slightly more contrast than the original input file.

Some of the commands I've tried are:

ffmpeg -i /Users/roy/Desktop/devnull/ffmpeg\ test/ffmpeg.MOV -vcodec prores -acodec copy /Users/roy/Desktop/devnull/ffmpeg\ test/prores_auto.mov

ffmpeg -i /Users/roy/Desktop/devnull/ffmpeg\ test/ffmpeg.MOV -c:v prores_ks -profile:v 2 -c:a copy /Users/roy/Desktop/devnull/ffmpeg\ test/prores_ks_standard.mov

When I convert the input footage with the Quicktime Animation codec first ffmpeg does not introduce extra contrast in the output footage.

Is there an extra flag that I'm supposed to be using? Does is it have something to do with a wrongly interpreted colourspace in ffmpeg?

The log for the first command:

> Roy-iMac:~ roy$ ffmpeg -i /Users/roy/Desktop/devnull/ffmpeg\
> test/ffmpeg.MOV -vcodec prores -acodec copy
> /Users/roy/Desktop/devnull/ffmpeg\ test/prores_auto.mov ffmpeg version
> 4.0.2 Copyright (c) 2000-2018 the FFmpeg developers   built with Apple LLVM version 9.1.0 (clang-902.0.39.2)   configuration:
> --prefix=/usr/local/Cellar/ffmpeg/4.0.2 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma   libavutil      56. 14.100 / 56. 14.100   libavcodec     58. 18.100 / 58. 18.100   libavformat    58. 12.100 / 58. 12.100   libavdevice    58.  3.100 /
> 58.  3.100   libavfilter     7. 16.100 /  7. 16.100   libavresample   4.  0.  0 /  4.  0.  0   libswscale      5.  1.100 /  5.  1.100   libswresample   3.  1.100 /  3.  1.100   libpostproc    55.  1.100 /
> 55.  1.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd96c800000] decoding for stream 0 failed Guessed Channel Layout for Input Stream #0.1 : stereo
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
> '/Users/roy/Desktop/devnull/ffmpeg test/ffmpeg.MOV':   Metadata:
>     major_brand     : qt  
>     minor_version   : 537986816
>     compatible_brands: qt  pana
>     creation_time   : 2018-10-12T13:49:01.000000Z
>     com.panasonic.Semi-Pro.metadata.xml: <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
>                     : <ClipMain xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns="urn:schemas-Professional-Plug-in:Semi-Pro:ClipMetadata:v1.0">
>                     :   <ClipContent>
>                     :     <GlobalClipID>060A2B340101010501010D431300000060F44F8E038405C6008045821D6BD519</GlobalClipID>
>                     :     <Duration>420</Duration>
>                     :     <EditUnit>1/25</EditUnit>
>                     :     <EssenceList>
>                     :       <Video>
>                     :         <Codec BitRate="150">H264_422_LongGOP</Codec>
>                     :         <ActiveLine>2160</ActiveLine>
>                     :         <ActivePixel>3840</ActivePixel>
>                     :         <BitDepth>10</BitDepth>
>                     :         <FrameRate>25p</FrameRate>
>                     :         <TimecodeType>NonDrop</TimecodeType>
>                     :         <StartTimecode>03:19:16:01</StartTimecode>
>                     :         <StartBinaryGroup>00000000</StartBinaryGroup>
>                     :       </Video>
>                     :       <Audio>
>                     :         <Channel>2</Channel>
>                     :         <SamplingRate>48000</SamplingRate>
>                     :         <BitsPerSample>24</BitsPerSample>
>                     :       </Audio>
>                     :     </EssenceList>
>                     :     <ClipMetadata>
>                     :       <UserClipName>A014C005_181012_K7B3</UserClipName>
>                     :       <Access>
>                     :         <CreationDate>2018-10-12T14:49:01+01:00</CreationDate>
>                     :       </Access>
>                     :       <Device>
>                     :         <Manufacturer>Panasonic</Manufacturer>
>                     :         <SerialNo.>K7TAA0323</SerialNo.>
>                     :         <ModelName>AU-EVA1</ModelName>
>                     :       </Device>
>                     :       <Shoot>
>                     :         <StartDate>2018-10-12T14:49:01+01:00</StartDate>
>                     :       </Shoot>
>                     :     </ClipMetadata>
>                     :   </ClipContent>
>                     :   <UserArea>
>                     :     <AcquisitionMetadata xmlns="urn:schemas-Professional-Plug-in:P2:CameraMetadata:v1.2">
>                     :       <CameraUnitMetadata>
>                     :         <ISOSensitivity>2500</ISOSensitivity>
>                     :         <WhiteBalanceColorTemperature>4500K</WhiteBalanceColorTemperature>
>                     :         <Gamma>
>                     :           <CaptureGamma>V-Log</CaptureGamma>
>                     :         </Gamma>
>                     :         <Gamut>
>                     :           <CaptureGamut>V-Gamut</CaptureGamut>
>                     :         </Gamut>
>                     :       </CameraUnitMetadata>
>                     :     </AcquisitionMetadata>
>                     :   </UserArea>
>                     : </ClipMain>
>                     :    Duration: 00:00:16.80, start: 0.000000, bitrate: 150123 kb/s
>     Stream #0:0(eng): Video: h264 (High 4:2:2) (avc1 / 0x31637661), yuv422p10le(pc, bt709), 3840x2160 [SAR 1:1 DAR 16:9], 147693 kb/s, 25
> fps, 25 tbr, 90k tbn, 50 tbc (default)
>     Metadata:
>       creation_time   : 2018-10-12T13:49:01.000000Z
>       timecode        : 03:19:16:01
>     Stream #0:1(eng): Audio: pcm_s24be (lpcm / 0x6D63706C), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default)
>     Metadata:
>       creation_time   : 2018-10-12T13:49:01.000000Z
>       timecode        : 03:19:16:01
>     Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
>     Metadata:
>       creation_time   : 2018-10-12T13:49:01.000000Z
>       reel_name       : A014
>       timecode        : 03:19:16:01 File '/Users/roy/Desktop/devnull/ffmpeg test/prores_auto.mov' already
> exists. Overwrite ? [y/N] y Stream mapping:   Stream #0:0 -> #0:0
> (h264 (native) -> prores (native))   Stream #0:1 -> #0:1 (copy) Press
> [q] to stop, [?] for help [prores @ 0x7fd96e003a00] encoding with
> ProRes standard (apcn) profile [prores @ 0x7fd96e006200] encoding with
> ProRes standard (apcn) profile [prores @ 0x7fd96e008a00] encoding with
> ProRes standard (apcn) profile [prores @ 0x7fd970066400] encoding with
> ProRes standard (apcn) profile [prores @ 0x7fd9700cf800] encoding with
> ProRes standard (apcn) profile [prores @ 0x7fd96e00b200] encoding with
> ProRes standard (apcn) profile [prores @ 0x7fd96e00da00] encoding with
> ProRes standard (apcn) profile [prores @ 0x7fd96e806200] encoding with
> ProRes standard (apcn) profile [prores @ 0x7fd96c80a400] encoding with
> ProRes standard (apcn) profile Output #0, mov, to
> '/Users/roy/Desktop/devnull/ffmpeg test/prores_auto.mov':   Metadata:
>     major_brand     : qt  
>     minor_version   : 537986816
>     compatible_brands: qt  pana
>     com.panasonic.Semi-Pro.metadata.xml: <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
>                     : <ClipMain xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns="urn:schemas-Professional-Plug-in:Semi-Pro:ClipMetadata:v1.0">
>                     :   <ClipContent>
>                     :     <GlobalClipID>060A2B340101010501010D431300000060F44F8E038405C6008045821D6BD519</GlobalClipID>
>                     :     <Duration>420</Duration>
>                     :     <EditUnit>1/25</EditUnit>
>                     :     <EssenceList>
>                     :       <Video>
>                     :         <Codec BitRate="150">H264_422_LongGOP</Codec>
>                     :         <ActiveLine>2160</ActiveLine>
>                     :         <ActivePixel>3840</ActivePixel>
>                     :         <BitDepth>10</BitDepth>
>                     :         <FrameRate>25p</FrameRate>
>                     :         <TimecodeType>NonDrop</TimecodeType>
>                     :         <StartTimecode>03:19:16:01</StartTimecode>
>                     :         <StartBinaryGroup>00000000</StartBinaryGroup>
>                     :       </Video>
>                     :       <Audio>
>                     :         <Channel>2</Channel>
>                     :         <SamplingRate>48000</SamplingRate>
>                     :         <BitsPerSample>24</BitsPerSample>
>                     :       </Audio>
>                     :     </EssenceList>
>                     :     <ClipMetadata>
>                     :       <UserClipName>A014C005_181012_K7B3</UserClipName>
>                     :       <Access>
>                     :         <CreationDate>2018-10-12T14:49:01+01:00</CreationDate>
>                     :       </Access>
>                     :       <Device>
>                     :         <Manufacturer>Panasonic</Manufacturer>
>                     :         <SerialNo.>K7TAA0323</SerialNo.>
>                     :         <ModelName>AU-EVA1</ModelName>
>                     :       </Device>
>                     :       <Shoot>
>                     :         <StartDate>2018-10-12T14:49:01+01:00</StartDate>
>                     :       </Shoot>
>                     :     </ClipMetadata>
>                     :   </ClipContent>
>                     :   <UserArea>
>                     :     <AcquisitionMetadata xmlns="urn:schemas-Professional-Plug-in:P2:CameraMetadata:v1.2">
>                     :       <CameraUnitMetadata>
>                     :         <ISOSensitivity>2500</ISOSensitivity>
>                     :         <WhiteBalanceColorTemperature>4500K</WhiteBalanceColorTemperature>
>                     :         <Gamma>
>                     :           <CaptureGamma>V-Log</CaptureGamma>
>                     :         </Gamma>
>                     :         <Gamut>
>                     :           <CaptureGamut>V-Gamut</CaptureGamut>
>                     :         </Gamut>
>                     :       </CameraUnitMetadata>
>                     :     </AcquisitionMetadata>
>                     :   </UserArea>
>                     : </ClipMain>
>                     : 
>     encoder         : Lavf58.12.100
>     Stream #0:0(eng): Video: prores (apcn / 0x6E637061), yuv422p10le, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 0.04 fps, 12800 tbn,
> 25 tbc (default)
>     Metadata:
>       creation_time   : 2018-10-12T13:49:01.000000Z
>       timecode        : 03:19:16:01
>       encoder         : Lavc58.18.100 prores
>     Stream #0:1(eng): Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default)
>     Metadata:
>       creation_time   : 2018-10-12T13:49:01.000000Z
>       timecode        : 03:19:16:01 frame=  420 fps= 20 q=-0.0 Lsize= 1036081kB time=00:00:16.78 bitrate=505533.8kbits/s speed=0.797x    
> video:1031347kB audio:4725kB subtitle:0kB other streams:0kB global
> headers:0kB muxing overhead: 0.000812%
2
  • Share the full log of the first command. How are you checking the output file?
    – Gyan
    Oct 17, 2018 at 5:09
  • I've added the log for the first command. I checked the files in Adobe Premiere Pro, but the increased contrast can also be seen in other video players
    – sirbaxx
    Oct 17, 2018 at 16:39

2 Answers 2

0

Ok, so your input is full-range (pc, bt709) which is unusual, so let's try to correct that.

ffmpeg -i ffmpeg.MOV -vf scale=in_range=pc:out_range=tv -c:v prores -c:a copy prores_auto.mov
4
  • This seems to work for the contrast (still a tiny bit more contrast thought. But with this command the colour in the output has changed every so slightly.
    – sirbaxx
    Oct 18, 2018 at 13:09
  • screenshot of Lumetri Scopes of original footage: dropbox.com/s/twk01qcojhsvoa1/original%20footage.png?dl=0 screenshot of Lumetri Scopes of transcoded footage: dropbox.com/s/ul9t7rg798x70gt/ProRes%20footage.png?dl=0
    – sirbaxx
    Oct 18, 2018 at 13:15
  • Change to scale=in_range=pc:out_range=tv:out_color_matrix=bt709
    – Gyan
    Oct 18, 2018 at 13:37
  • The output is still the same with that command (colour shift). The footage is recorded in LOG in 10bit by the way. Not in Rec.709. Don't know if that helps?
    – sirbaxx
    Oct 18, 2018 at 15:10
0

ffmpeg -i "source.mov" -map_metadata 0 -pix_fmt yuv422p10le -c:v prores_ks -profile:v 4 -c:a pcm_s24le -movflags write_colr "out.mov"

this will create ProRES (10bit) MOV file (map_metadata allows to keep recording dates). Audio will be PCM 24bit. Timecode will be also copied by default.

If you want to flag ProRES as full range you add: -color_range pc. By default it's always flagged as limited range (even if ffmpeg properly reads the color range).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.