Konvertieren in ProRes mit ffmpeg fügt Filmmaterial unerwünschten Kontrast hinzu

Ich versuche, H.264-Material von einer Panasonic EVA1-Kamera mit ffmpeg in Apple ProRes zu konvertieren. Aber egal welche Einstellung ich verwende, die Ausgabedatei hat etwas mehr Kontrast als die ursprüngliche Eingabedatei.

Einige der Befehle, die ich ausprobiert habe, sind:

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

Wenn ich das Eingangsmaterial mit dem Quicktime-Animationscodec konvertiere, fügt ffmpeg zunächst keinen zusätzlichen Kontrast in das Ausgangsmaterial ein.

Gibt es ein zusätzliches Flag, das ich verwenden soll? Hat es etwas mit einem falsch interpretierten Farbraum in ffmpeg zu tun?

Das Protokoll für den ersten Befehl:

> 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%
Geben Sie das vollständige Protokoll des ersten Befehls frei. Wie prüfen Sie die Ausgabedatei?
Ich habe das Protokoll für den ersten Befehl hinzugefügt. Ich habe die Dateien in Adobe Premiere Pro überprüft, aber der erhöhte Kontrast ist auch in anderen Videoplayern zu sehen

Antworten (2)

Ok, Ihre Eingabe ist also ein Vollbereich, (pc, bt709)was ungewöhnlich ist, also versuchen wir, das zu korrigieren.

ffmpeg -i ffmpeg.MOV -vf scale=in_range=pc:out_range=tv -c:v prores -c:a copy prores_auto.mov
Dies scheint für den Kontrast zu funktionieren (noch ein bisschen mehr Kontrast gedacht. Aber mit diesem Befehl hat sich die Farbe in der Ausgabe ganz geringfügig geändert.
Screenshot von Lumetri Scopes mit Originalmaterial: dropbox.com/s/twk01qcojhsvoa1/original%20footage.png?dl=0 Screenshot von Lumetri Scopes mit transkodiertem Filmmaterial: dropbox.com/s/ul9t7rg798x70gt/ProRes%20footage.png?dl=0
Ändernscale=in_range=pc:out_range=tv:out_color_matrix=bt709
Die Ausgabe ist mit diesem Befehl immer noch dieselbe (Farbverschiebung). Das Filmmaterial wird übrigens im LOG in 10bit aufgenommen. Nicht in Rec.709. Weiß nicht ob das hilft?

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"

Dadurch wird eine ProRES-MOV-Datei (10 Bit) erstellt (map_metadata ermöglicht das Speichern von Aufnahmedaten). Audio wird PCM 24bit sein. Der Timecode wird standardmäßig ebenfalls kopiert.

Wenn Sie ProRES als Vollsortiment kennzeichnen möchten, fügen Sie hinzu: -color_range pc. Standardmäßig wird es immer als begrenzter Bereich gekennzeichnet (auch wenn ffmpeg den Farbbereich richtig liest).