[FFmpeg-user] ffmpeg created prores 444 still not identified correctly by Quicktime player?

Sam Marrocco smarrocco at ringsidecreative.com
Wed May 15 17:37:59 CEST 2013


On 5/15/2013 9:20 AM, Carl Eugen Hoyos wrote:

Sam Marrocco <smarrocco <at> ringsidecreative.com> writes:



However as near as I can tell, the image quality does
seem to indicate that it is being created using 444
(using a gradient that indicates banding more
predominantly when 422).



Does that change if you change the "fourcc"
(which does not exist in a mov file) with
a hex editor?




?
If the fourcc does not exist in the mov file then how could I change it with a hex editor?
I did a search within the file and found the string 'ApcH' and changed it to 'ap4h'. The file is still identified by QT Player as 422, so this does not correct the issue.

I'll summarize the initial problem:
ffmpeg with the kostya prores encoder seems unable to create a 444 prores quicktime movie that is correctly identified by Quicktime player as 444.
Given a Prores 444 quicktime movie (in this case from an Alexa camera) a command line shows:

ffmpeg -i C:\Server\Jobs\MediaConversionFormats\QT\Alexa\AlexaProRes4444QT_A.mov
ffmpeg version N-52837-g399f6ef Copyright (c) 2000-2013 the FFmpeg developers
  built on May  7 2013 01:14:14 with gcc 4.7.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 29.100 / 52. 29.100
  libavcodec     55.  7.100 / 55.  7.100
  libavformat    55.  4.101 / 55.  4.101
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 63.101 /  3. 63.101
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Server\Jobs\MediaConversionFormats\QT\Alexa\AlexaProRes4444QT_A.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt  ARRI
    creation_time   : 2011-01-15 07:46:24
    timecode        : 07:46:22:00
  Duration: 00:00:01.63, start: 0.000000, bitrate: 228904 kb/s
    Stream #0:0(eng): Video: prores (ap4h / 0x68347061), yuv444p10le, 1920x1080, 217573 kb/s, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 23976 tbn, 23976 tbc
    Metadata:
      creation_time   : 2011-01-15 07:46:24
      handler_name    : Apple Alias Data Handler
    Stream #0:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
    Metadata:
      creation_time   : 2011-01-15 07:46:24
      handler_name    : Apple Alias Data Handler
      timecode        : 07:46:22:00
At least one output file must be specified


This shows an identifier of ap4h (as expected).


Conversion of this same file into another 444 prores with ffmpeg from the command line as follows:

"C:\Server\CodeIP\TransFile_1.1.0002\bin\Debug\ffmpeg-20130507-git-399f6ef-win64-static\bin\ffmpeg.exe" -i "C:\Server\Jobs\MediaConversionFormats\QT\Alexa\AlexaProRes4444QT_A.mov" -vcodec prores_ks -pix_fmt yuv444p10le -profile:v 3 -acodec copy -f mov "C:\Server\Temp\Output\AlexaProRes4444QT_A\AlexaProRes4444QT_A.mov"

ffmpeg version N-52837-g399f6ef Copyright (c) 2000-2013 the FFmpeg developers
  built on May  7 2013 01:14:14 with gcc 4.7.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 29.100 / 52. 29.100
  libavcodec     55.  7.100 / 55.  7.100
  libavformat    55.  4.101 / 55.  4.101
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 63.101 /  3. 63.101
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Server\Jobs\MediaConversionFormats\QT\Alexa\AlexaProRes4444QT_A.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt  ARRI
    creation_time   : 2011-01-15 07:46:24
    timecode        : 07:46:22:00
  Duration: 00:00:01.63, start: 0.000000, bitrate: 228904 kb/s
    Stream #0:0(eng): Video: prores (ap4h / 0x68347061), yuv444p10le, 1920x1080, 217573 kb/s, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 23976 tbn, 23976 tbc
    Metadata:
      creation_time   : 2011-01-15 07:46:24
      handler_name    : Apple Alias Data Handler
    Stream #0:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
    Metadata:
      creation_time   : 2011-01-15 07:46:24
      handler_name    : Apple Alias Data Handler
      timecode        : 07:46:22:00
Output #0, mov, to 'C:\Server\Temp\Output\AlexaProRes4444QT_A\AlexaProRes4444QT_A.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt  ARRI
    timecode        : 07:46:22:00
    encoder         : Lavf55.4.101
    Stream #0:0(eng): Video: prores (prores_ks) (apch / 0x68637061), yuv444p10le, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 11988 tbn, 23.98 tbc
    Metadata:
      creation_time   : 2011-01-15 07:46:24
      handler_name    : Apple Alias Data Handler
Stream mapping:
  Stream #0:0 -> #0:0 (prores -> prores_ks)
Press [q] to stop, [?] for help
frame=   39 fps=2.9 q=0.0 Lsize=   36753kB time=00:00:01.62 bitrate=185097.5kbits/s
video:36752kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.004387%


This seams to show the outgoing stream as apch.
Taking this newly created file into ffmpeg again show the following info:

ffprobe version N-52837-g399f6ef Copyright (c) 2007-2013 the FFmpeg developers
  built on May  7 2013 01:14:14 with gcc 4.7.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 29.100 / 52. 29.100
  libavcodec     55.  7.100 / 55.  7.100
  libavformat    55.  4.101 / 55.  4.101
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 63.101 /  3. 63.101
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Server\Temp\Output\AlexaProRes4444QT_A\AlexaProRes4444QT_A.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    encoder         : Lavf55.4.101
  Duration: 00:00:01.63, start: 0.000000, bitrate: 185055 kb/s
    Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv444p10le, 1920x1080, 185089 kb/s, 23.98 fps, 23.98 tbr, 11988 tbn, 11988 tbc
    Metadata:
      handler_name    : DataHandler
      timecode        : 07:46:22:00
    Stream #0:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
    Metadata:
      handler_name    : DataHandler
      timecode        : 07:46:22:00
Unsupported codec with id 0 for input stream 1


This newly created QT is identified by Quicktime Player as Apple Prores 422 (HQ). If ffmpeg is creating a 444 prores per the provided arguments why wouldn't QT Player identify it as such?






sam marrocco | chief technical officer
ringside.cutters.picnic.moonlink

248 548 2500 w
248 910 3344 c

ringsidecreative.com

<http://ringsidecreative.com/>


More information about the ffmpeg-user mailing list