[FFmpeg-user] ProRes encoding: Question about FFmpeg docs

Peter B. pb at das-werkstatt.com
Sun Mar 11 10:33:29 EET 2018


Hi :)

For testing purposes, I tried to encode a ProRes file using ffmpeg
(current git HEAD).
I have 2 questions about the FFmpeg docs about ProRes [1]:


1) Docs mention 2 encoder names, but only "prores" works:
========================================

When I looked at the documentation [1], there are 2 encoders mentioned:
  * prores-aw
  * prores-ks

It says to use "-vcodec" to choose which one (btw: I also tried "-c:v"):
I get: "Unknown encoder" for both.
(Commandline and console output at the end)

Using "-c:v prores" works, however.
I've also checked "./configure --help | grep -i prores" but didn't find
any compile switch to enable/disable them.


2) Docs say "profile/quantmat" is "integer", but only list strings:
========================================

[quote]
profile integer
    Select the ProRes profile to encode

    ‘proxy’
    ‘lt’
    ‘standard’
    ‘hq’
    ‘4444’
    ‘4444xq’

quant_mat integer
    Select quantization matrix.

    ‘auto’
    ‘default’
    ‘proxy’
    ‘lt’
    ‘standard’
    ‘hq’
[/quote]


Am I using it incorrectly, or is the documentation confusing?

Thank you very much in advance,
Peter


== References:
[1] https://ffmpeg.org/ffmpeg-all.html#ProRes




Commandline and complete, uncut console output:
(OS: Xubuntu 16.04.3 64bit)


--------------------------------------------
$ ffmpeg-git -i gopro.mp4 -an -vcodec prores-aw protest.mov
--------------------------------------------

ffmpeg version N-90260-g840f6eb Copyright (c) 2000-2018 the FFmpeg
developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
  configuration: --prefix=/usr/local --enable-gpl --enable-nonfree
--enable-version3 --enable-postproc --enable-swscale --enable-avfilter
--enable-pthreads --enable-bzlib --enable-zlib --enable-decoder=png
--enable-encoder=png --samples=../fate-suite --enable-libfreetype
--enable-libopenjpeg --disable-decoder=jpeg2000 --enable-libvpx
--enable-libvorbis --enable-libx264
  libavutil      56.  8.100 / 56.  8.100
  libavcodec     58. 13.102 / 58. 13.102
  libavformat    58. 10.100 / 58. 10.100
  libavdevice    58.  2.100 / 58.  2.100
  libavfilter     7. 12.100 /  7. 12.100
  libswscale      5.  0.102 /  5.  0.102
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'gopro.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.10.100
  Duration: 00:00:05.01, start: 0.000000, bitrate: 30089 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661),
yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 30036 kb/s, 50 fps,
50 tbr, 90k tbn, 100 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Unknown encoder 'prores-aw'



--------------------------------------------
$ ffmpeg-git -i gopro.mp4 -an -c:v prores-ks protest.mov
--------------------------------------------

ffmpeg version N-90260-g840f6eb Copyright (c) 2000-2018 the FFmpeg
developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
  configuration: --prefix=/usr/local --enable-gpl --enable-nonfree
--enable-version3 --enable-postproc --enable-swscale --enable-avfilter
--enable-pthreads --enable-bzlib --enable-zlib --enable-decoder=png
--enable-encoder=png --samples=../fate-suite --enable-libfreetype
--enable-libopenjpeg --disable-decoder=jpeg2000 --enable-libvpx
--enable-libvorbis --enable-libx264
  libavutil      56.  8.100 / 56.  8.100
  libavcodec     58. 13.102 / 58. 13.102
  libavformat    58. 10.100 / 58. 10.100
  libavdevice    58.  2.100 / 58.  2.100
  libavfilter     7. 12.100 /  7. 12.100
  libswscale      5.  0.102 /  5.  0.102
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'gopro.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.10.100
  Duration: 00:00:05.01, start: 0.000000, bitrate: 30089 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661),
yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 30036 kb/s, 50 fps,
50 tbr, 90k tbn, 100 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Unknown encoder 'prores-ks'



--------------------------------------------
$ ffmpeg-git -i gopro.mp4 -an -c:v prores protest.mov
--------------------------------------------

ffmpeg version N-90260-g840f6eb Copyright (c) 2000-2018 the FFmpeg
developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
  configuration: --prefix=/usr/local --enable-gpl --enable-nonfree
--enable-version3 --enable-postproc --enable-swscale --enable-avfilter
--enable-pthreads --enable-bzlib --enable-zlib --enable-decoder=png
--enable-encoder=png --samples=../fate-suite --enable-libfreetype
--enable-libopenjpeg --disable-decoder=jpeg2000 --enable-libvpx
--enable-libvorbis --enable-libx264
  libavutil      56.  8.100 / 56.  8.100
  libavcodec     58. 13.102 / 58. 13.102
  libavformat    58. 10.100 / 58. 10.100
  libavdevice    58.  2.100 / 58.  2.100
  libavfilter     7. 12.100 /  7. 12.100
  libswscale      5.  0.102 /  5.  0.102
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'gopro.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.10.100
  Duration: 00:00:05.01, start: 0.000000, bitrate: 30089 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661),
yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 30036 kb/s, 50 fps,
50 tbr, 90k tbn, 100 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> prores (native))
Press [q] to stop, [?] for help
[swscaler @ 0x40807c0] deprecated pixel format used, make sure you did
set range correctly
[prores @ 0x44ce280] encoding with ProRes standard (apcn) profile
[prores @ 0x44d3240] encoding with ProRes standard (apcn) profile
[prores @ 0x44d8680] encoding with ProRes standard (apcn) profile
[prores @ 0x44ddbc0] encoding with ProRes standard (apcn) profile
[prores @ 0x44e3080] encoding with ProRes standard (apcn) profile
[prores @ 0x44e8540] encoding with ProRes standard (apcn) profile
[prores @ 0x44eda00] encoding with ProRes standard (apcn) profile
[prores @ 0x44f2ec0] encoding with ProRes standard (apcn) profile
[prores @ 0x37fee40] encoding with ProRes standard (apcn) profile
Output #0, mov, to 'protest.mov':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.10.100
    Stream #0:0(eng): Video: prores (apcn / 0x6E637061), yuv422p10le,
1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 50 fps, 12800 tbn, 50
tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc58.13.102 prores
frame=  250 fps= 49 q=-0.0 Lsize=  211180kB time=00:00:04.98
bitrate=347381.2kbits/s speed=0.981x   
video:211177kB audio:0kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: 0.001266%








More information about the ffmpeg-user mailing list