[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