Opened 6 years ago

Closed 5 years ago

#6797 closed enhancement (fixed)

PSD Decoder: Implement CMYK support (Color mode 4)

Reported by: Rens Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: psd cmyk bounty
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description (last modified by Carl Eugen Hoyos)

Summary of the bug:

FFmpeg fails to convert some PSD files to PNG thumbnails and throws the following error: color mode 4 is not implemented error when coverting a photoshop PSD with a 4th channel.

full command output:

ffmpeg -v 9 -loglevel 99 -i 'ZorroCMYK.psd'  -vf 'scale=300:200:force_original_aspect_ratio=decrease' -f image2 ZorroCMYK.png
user@host:~$ ffmpeg -v 9 -loglevel 99 -i 'ZorroCMYK.psd'  -vf 'scale=300:200:force_original_aspect_ratio=decrease' -f image2 ZorroCMYK.png
ffmpeg version N-87871-g7480f23 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/home/itbo/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/itbo/ffmpeg_build/include --extra-ldflags=-L/home/itbo/ffmpeg_build/lib --extra-libs=-lpthread --bindir=/home/itbo/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
  libavutil      55. 79.100 / 55. 79.100
  libavcodec     57.108.100 / 57.108.100
  libavformat    57. 84.100 / 57. 84.100
  libavdevice    57. 11.100 / 57. 11.100
  libavfilter     6.108.100 /  6.108.100
  libswscale      4.  9.100 /  4.  9.100
  libswresample   2. 10.100 /  2. 10.100
  libpostproc    54.  8.100 / 54.  8.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-i' ... matched as input url with argument 'ZorroCMYK.psd'.
Reading option '-vf' ... matched as option 'vf' (set video filters) with argument 'scale=300:200:force_original_aspect_ratio=decrease'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'image2'.
Reading option 'ZorroCMYK.png' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url ZorroCMYK.psd.
Successfully parsed a group of options.
Opening an input file: ZorroCMYK.psd.
[NULL @ 0x2e73660] Opening 'ZorroCMYK.psd' for reading
[file @ 0x2e74040] Setting default whitelist 'file,crypto'
Probing psd_pipe score:54 size:2048
[psd_pipe @ 0x2e73660] Format psd_pipe probed with size=2048 and score=54
[psd_pipe @ 0x2e73660] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:1
[psd_pipe @ 0x2e73660] parser not found for codec psd, packets or times may be invalid.
    Last message repeated 1 times
[psd @ 0x2e752c0] color mode 4 is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[psd_pipe @ 0x2e73660] decoding for stream 0 failed
[psd_pipe @ 0x2e73660] stream 0: start_time: -368934881474191040.000 duration: -368934881474191040.000
[psd_pipe @ 0x2e73660] format: start_time: -9223372036854.775 duration: -9223372036854.775 bitrate=0 kb/s
[psd_pipe @ 0x2e73660] Could not find codec parameters for stream 0 (Video: psd, 1 reference frame, none, 1200x895, 1/25): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[psd_pipe @ 0x2e73660] After avformat_find_stream_info() pos: 1824638 bytes read:1824638 seeks:0 frames:1
Input #0, psd_pipe, from 'ZorroCMYK.psd':
  Duration: N/A, bitrate: N/A
    Stream #0:0, 1, 1/25: Video: psd, 1 reference frame, none, 1200x895, 0/1, 25 tbr, 25 tbn, 25 tbc
Successfully opened the file.
Parsing a group of options: output url ZorroCMYK.png.
Applying option vf (set video filters) with argument scale=300:200:force_original_aspect_ratio=decrease.
Applying option f (force format) with argument image2.
Successfully parsed a group of options.
Opening an output file: ZorroCMYK.png.
Successfully opened the file.
detected 8 logical cores
Stream mapping:
  Stream #0:0 -> #0:0 (psd (native) -> png (native))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
    Last message repeated 1 times
[psd @ 0x2e85de0] color mode 4 is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
Error while decoding stream #0:0: Not yet implemented in FFmpeg, patches welcome
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
No more output streams to write to, finishing.
Finishing stream 0:0 without any data written to it.
Nothing was written into output file 0 (ZorroCMYK.png), because at least one of its streams received no packets.
frame=    0 fps=0.0 q=0.0 Lsize=N/A time=-577014:32:22.77 bitrate=N/A speed=N/A
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (ZorroCMYK.psd):
  Input stream #0:0 (video): 1 packets read (1824638 bytes); 0 frames decoded;
  Total: 1 packets (1824638 bytes) demuxed
Output file #0 (ZorroCMYK.png):
  Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes);
  Total: 0 packets (0 bytes) muxed
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
0 frames successfully decoded, 1 decoding errors
[AVIOContext @ 0x2e73da0] Statistics: 1824638 bytes read, 0 seeks
Conversion failed!

Attachments (1)

ZorroCMYK.psd (1.7 MB ) - added by Rens 6 years ago.
Photoshop image with 4th channel

Download all attachments as: .zip

Change History (5)

by Rens, 6 years ago

Attachment: ZorroCMYK.psd added

Photoshop image with 4th channel

comment:1 by Carl Eugen Hoyos, 6 years ago

Component: ffmpegavcodec
Description: modified (diff)
Keywords: psd added; Color mode not implemented photoshop removed
Priority: normalwish
Reproduced by developer: set
Status: newopen

comment:2 by Jason, 5 years ago

Keywords: cmky bounty added
Summary: Decode PSD file: Color mode 4 is not implementedPSD Decoder: Implement CMYK support (Color mode 4)

I've put a $100 bounty on this.

comment:3 by Carl Eugen Hoyos, 5 years ago

Keywords: cmky removed

comment:4 by Carl Eugen Hoyos, 5 years ago

Keywords: cmyk added
Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.