[FFmpeg-user] Possible to set color_range on the command line for mjpeg?

Robert Krüger krueger at lesspain.de
Tue Aug 25 17:50:40 CEST 2015


Hi,

for the purpose of debugging something in the libraries and submitting a
corresponding bug report, I would like to specify the color_range of the
codec context on the command line, i.e. in this case I want to create an
mjpeg file with full range without using the deprecated yuvj pixel formats.

I tried this here:

ffmpeg -i
~/lesspain/samples/software/fcp_7/xdcam_ex/fcp7_xdcam_ex_1080_25p_1s.mov
-vf scale=out_range=full -c:v mjpeg -an -pix_fmt yuv444p
mjpeg-fullrange-ffmpeg-noyuvj.mov
ffmpeg version N-74034-gce46627 Copyright (c) 2000-2015 the FFmpeg
developers
  built with Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM
3.6.0svn)
  configuration: --enable-gpl --enable-libx264
  libavutil      54. 29.100 / 54. 29.100
  libavcodec     56. 55.100 / 56. 55.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 29.100 /  5. 29.100
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fddd181bc00] nclc: pri 1 trc 1 matrix
1Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
'/Users/krueger/lesspain/samples/software/fcp_7/xdcam_ex/fcp7_xdcam_ex_1080_25p_1s.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2013-12-11 15:38:12
  Duration: 00:00:01.00, start: 0.000000, bitrate: 25365 kb/s
    Stream #0:0(eng): Video: mpeg2video (Main) (xdve / 0x65766478),
yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 23773 kb/s, 25 fps, 25
tbr, 25 tbn, 50 tbc (default)
    Metadata:
      creation_time   : 2013-12-11 15:38:12
      handler_name    : Apple Alias-Datensteuerung
      encoder         : XDCAM EX 1080p25 (35 Mb/s VBR)
      timecode        : 01:00:00:00
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, 2
channels, s16, 1536 kb/s (default)
    Metadata:
      creation_time   : 2013-12-11 15:38:12
      handler_name    : Apple Alias-Datensteuerung
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2013-12-11 15:38:16
      handler_name    : Apple Alias-Datensteuerung
      timecode        : 01:00:00:00
Incompatible pixel format 'yuv444p' for codec 'mjpeg', auto-selecting
format 'yuvj444p'
[swscaler @ 0x7fddd104a000] deprecated pixel format used, make sure you did
set range correctly
Output #0, mov, to 'mjpeg-fullrange-ffmpeg-noyuvj.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    encoder         : Lavf56.40.101
    Stream #0:0(eng): Video: mjpeg (jpeg / 0x6765706A), yuvj444p(pc),
1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc
(default)
    Metadata:
      creation_time   : 2013-12-11 15:38:12
      handler_name    : Apple Alias-Datensteuerung
      timecode        : 01:00:00:00
      encoder         : Lavc56.55.100 mjpeg
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> mjpeg (native))
Press [q] to stop, [?] for help
frame=   24 fps=0.0 q=24.8 size=    2066kB time=00:00:00.96
bitrate=17626.5kbitsframe=   25 fps=0.0 q=24.8 Lsize=    2147kB
time=00:00:01.00 bitrate=17589.0kbits/s
video:2146kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.067178%

but obviously the mjpeg encoder refuses the pixel format although it should
not do this if the deprecated pixel formats are really not to be used. Am I
missing something or is the mjpeg encoder simply not capable yet of working
with color_range instead of the deprecated yuvj pixel formats?

Thanks in advance,

Robert


More information about the ffmpeg-user mailing list