What is the right command to produce a Lossless JPEG file ? magick wizard: ppm:- | ffmpeg -v trace -i - -map 0:v -c:v ljpeg -b:v 1M -pred median -f mjpeg -y wizard.jpg ffmpeg version N-119135-g1722f08acf Copyright (c) 2000-2025 the FFmpeg developers built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04) configuration: --prefix=/usr --disable-static --enable-shared --enable-gpl --enable-version3 --disable-doc --disable-avdevice --enable-swresample --disable-swscale --disable-postproc --disable-network --disable-everything --enable-protocol='fd, file, subfile, pipe' --enable-demuxer='image_jpeg_pipe, mjpeg, mpjpeg, smjpeg, image_ppm_pipe' --enable-muxer='mjpeg, mpjpeg, smjpeg' --enable-decoder='mjpeg, ppm' --enable-encoder='ljpeg, mjpeg, ppm' --disable-ffplay libavutil 60. 0.100 / 60. 0.100 libavcodec 62. 0.101 / 62. 0.101 libavformat 62. 0.100 / 62. 0.100 libavfilter 11. 0.100 / 11. 0.100 libswresample 6. 0.100 / 6. 0.100 Splitting the commandline. Reading option '-v' ... matched as option 'v' (set logging level) with argument 'trace'. Reading option '-i' ... matched as input url with argument '-'. Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:v'. Reading option '-c:v' ... matched as option 'c' (select encoder/decoder ('copy' to copy stream without reencoding)) with argument 'ljpeg'. Reading option '-b:v' ... matched as option 'b' (video bitrate (please use -b:v)) with argument '1M'. Reading option '-pred' ... matched as AVOption 'pred' with argument 'median'. Reading option '-f' ... matched as option 'f' (force container format (auto-detected otherwise)) with argument 'mjpeg'. Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'. Reading option 'wizard.jpg' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option v (set logging level) with argument trace. Applying option y (overwrite output files) with argument 1. Successfully parsed a group of options. Parsing a group of options: input url -. Successfully parsed a group of options. Opening an input file: -. [AVFormatContext @ 0x5ea397c38a40] Opening 'fd:' for reading [fd @ 0x5ea397c39200] Setting default whitelist 'crypto,data' Probing ppm_pipe score:52 size:2048 [ppm_pipe @ 0x5ea397c38a40] Format ppm_pipe probed with size=2048 and score=52 [ppm_pipe @ 0x5ea397c38a40] Before avformat_find_stream_info() pos: 0 bytes read:16384 seeks:0 nb_streams:1 [ppm_pipe @ 0x5ea397c38a40] parser not found for codec ppm, packets or times may be invalid. [ppm_pipe @ 0x5ea397c38a40] stream 0: start_time: NOPTS duration: NOPTS [ppm_pipe @ 0x5ea397c38a40] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [ppm_pipe @ 0x5ea397c38a40] Could not find codec parameters for stream 0 (Video: ppm, 1 reference frame, none): unspecified size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options [ppm_pipe @ 0x5ea397c38a40] After avformat_find_stream_info() pos: 0 bytes read:16384 seeks:0 frames:0 Input #0, ppm_pipe, from 'fd:': Duration: N/A, bitrate: N/A Stream #0:0, 0, 1/25: Video: ppm, 1 reference frame, none, 25 fps, 25 tbr, 25 tbn Successfully opened the file. Parsing a group of options: output url wizard.jpg. Applying option map (set input stream mapping) with argument 0:v. Parsing stream specifier: v Parsed media type: video; remainder: Applying option c:v (select encoder/decoder ('copy' to copy stream without reencoding)) with argument ljpeg. Parsing stream specifier: v Parsed media type: video; remainder: Applying option b:v (video bitrate (please use -b:v)) with argument 1M. Applying option f (force container format (auto-detected otherwise)) with argument mjpeg. Successfully parsed a group of options. Opening an output file: wizard.jpg. [out#0/mjpeg @ 0x5ea397c3b5c0] Adding streams from explicit maps... [vost#0:0/ljpeg @ 0x5ea397c3c0c0] Created video stream from input stream 0:0 Parsing stream specifier: v Parsed media type: video; remainder: [file @ 0x5ea397c48040] Setting default whitelist 'file,crypto,data' Successfully opened the file. Stream mapping: Stream #0:0 -> #0:0 (ppm (native) -> ljpeg (native)) [vost#0:0/ljpeg @ 0x5ea397c3c0c0] Starting thread... [vf#0:0 @ 0x5ea397c3d680] Starting thread... [vist#0:0/ppm @ 0x5ea397c3ae40] [dec:ppm @ 0x5ea397c43880] Starting thread... [in#0/ppm_pipe @ 0x5ea397c386c0] Starting thread... [in#0/ppm_pipe @ 0x5ea397c386c0] EOF while reading input [in#0/ppm_pipe @ 0x5ea397c386c0] Terminating thread with return code 0 (success) [vist#0:0/ppm @ 0x5ea397c3ae40] [dec:ppm @ 0x5ea397c43880] Decoder thread received EOF packet [vist#0:0/ppm @ 0x5ea397c3ae40] [dec:ppm @ 0x5ea397c43880] Decoder returned EOF, finishing [vist#0:0/ppm @ 0x5ea397c3ae40] [dec:ppm @ 0x5ea397c43880] Terminating thread with return code 0 (success) [vf#0:0 @ 0x5ea397c3d680] Cannot determine format of input 0:0 after EOF [vf#0:0 @ 0x5ea397c3d680] Task finished with error code: -1094995529 (Invalid data found when processing input) [vf#0:0 @ 0x5ea397c3d680] Terminating thread with return code -1094995529 (Invalid data found when processing input) [vost#0:0/ljpeg @ 0x5ea397c3c0c0] [enc:ljpeg @ 0x5ea397c3cb00] Encoder thread received EOF [vost#0:0/ljpeg @ 0x5ea397c3c0c0] [enc:ljpeg @ 0x5ea397c3cb00] Could not open encoder before EOF [vost#0:0/ljpeg @ 0x5ea397c3c0c0] Task finished with error code: -22 (Invalid argument) [vost#0:0/ljpeg @ 0x5ea397c3c0c0] Terminating thread with return code -22 (Invalid argument) [out#0/mjpeg @ 0x5ea397c3b5c0] Nothing was written into output file, because at least one of its streams received no packets. frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A
[AVIOContext @ 0x5ea397c47f00] Statistics: 0 bytes written, 0 seeks, 0 writeouts [in#0/ppm_pipe @ 0x5ea397c386c0] Input file #0 (fd:): [in#0/ppm_pipe @ 0x5ea397c386c0] Input stream #0:0 (video): 0 packets read (0 bytes); 0 frames decoded; 0 decode errors; [in#0/ppm_pipe @ 0x5ea397c386c0] Total: 0 packets (0 bytes) demuxed [AVIOContext @ 0x5ea397c495c0] Statistics: 16384 bytes read, 0 seeks Conversion failed! Gianluca _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".