0

Converting a Prores file with parameters:

arguments: -i "input.mov" -map 0 -c copy -c:v prores -profile:v 2 -c:a pcm_s16le "output.mov"

gives the following output:

ffmpeg version 2022-01-30-git-1530b3f566-essentials_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 11.2.0 (Rev7, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      57. 19.100 / 57. 19.100
  libavcodec     59. 20.100 / 59. 20.100
  libavformat    59. 17.101 / 59. 17.101
  libavdevice    59.  5.100 / 59.  5.100
  libavfilter     8. 26.101 /  8. 26.101
  libswscale      6.  5.100 /  6.  5.100
  libswresample   4.  4.100 /  4.  4.100
  libpostproc    56.  4.100 / 56.  4.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000061fbc9c240] Using non-standard frame rate 18432/1024
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    encoder         : Lavf58.27.103
  Duration: 00:30:12.67, start: 0.000000, bitrate: 865279 kb/s
  Stream #0:0[0x1](eng): Video: prores (4444) (ap4h / 0x68347061), yuv444p12le(tv, bt709, progressive), 4096x2160, 864125 kb/s, SAR 1:1 DAR 256:135, 18 fps, 18 tbr, 18432 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : FFMP
      encoder         : Lavc58.53.100 prores_ks
      timecode        : 01:00:00:00
  Stream #0:1[0x2](eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](eng): Data: none (tmcd / 0x64636D74)
    Metadata:
      handler_name    : VideoHandler
      timecode        : 01:00:00:00
Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 0, only the last option '-c:v prores' will be used.
Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 1, only the last option '-c:a pcm_s16le' will be used.
Stream mapping:
  Stream #0:0 -> #0:0 (prores (native) -> prores (native))
  Stream #0:1 -> #0:1 (pcm_s16le (native) -> pcm_s16le (native))
  Stream #0:2 -> #0:2 (copy)
Press [q] to stop, [?] for help
[prores @ 00000061fbd03440] encoding with ProRes Proxy/LT/422/422 HQ (apco, apcs, apcn, ap4h) profile, need YUV422P10 input
[prores @ 00000061fbca0200] ff_frame_thread_encoder_init failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

Does this:

encoding with ProRes Proxy/LT/422/422 HQ (apco, apcs, apcn, ap4h) profile, need YUV422P10 input

mean it's not supported by ffmpeg at all or is there a solution to this problem. (Used the latest version of ffmpeg)

1
  • Half of that ffmpeg command is redundant. Therte's no point using -c copy if you then specify different audio and video codecs, and with only one input there's no need to use -map 0. You could just use -i "input.mov" -c:v prores -profile:v 2 -pix_fmt yuv422p10le -c:a pcm_s16le "output.mov"
    – stib
    Feb 8, 2022 at 23:30

1 Answer 1

1

The input has full chroma sub-sampling and is 12-bit, and, by default, ffmpeg will try to retain as much fidelity as possible when converting the pixel format for the output encoder. However, for the selected profile, the encoder needs a pixel format with chroma sub-sampling and a lower bit depth. So you'll have to manually set the required one.

Add -pix_fmt yuv422p10le.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.