[FFmpeg-user] H.264 Quicktime encoded file stutters
Marcelo Boufleur
mboufleur at gmail.com
Thu Nov 27 20:33:00 CET 2014
Hello everyone,
I am still quite new to ffmpeg, but I'm already using it to convert some
content - mostly to Quicktime format.
During one of these attempts, I wanted to convert a JPEG2000 MXF file from
a DCP into Quicktime file with H.264 codec, that would mimic the same
experience as if the file would be encoded with Quicktime player itself (or
maybe Compressor).
At the end, this Quicktime file would be played using a windows PC with the
Quicktime Player, so my goal was to create the exact same experience.
I created a small sample from Quicktime player and then compared it to the
same file created using ffmpeg. At first, I was able to adjust all settings
in ffmpeg (CAVLC, ref frames, b-frames, resolution, bitrate, etc) to mimic
all configurations used by the H.264 file created by Quicktime player.
The info was provided by Mediainfo, and although not all parameters for
H.264 were there, the ffmpeg generated file seemed to equalize all settings.
Unfortunately, when played in Quicktime player, the final ffmpeg H.264 file
would stutter. The original movie frame rate had 24fps, and Quicktime would
play only 16fps on average.
This is the command line I am currently using:
ffmpeg -r 24 -i Input.mxf -vf "scale=1920:1038,pad=1920:1080:0:21" -pix_fmt
yuv420p -c:v libx264 -r 24 -profile:v main -level 4.1 -preset faster -coder
0 -crf 21 -x264opts keyint=60:bframes=1:ref=2:qpmin=4:b-pyramid=0 Output.mov
And this is the console output:
ffmpeg version N-67501-g064a237 Copyright (c) 2000-2014 the FFmpeg
developers
built on Nov 9 2014 22:52:31 with gcc 4.9.2 (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-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme
--enable-libgsm --enable-libilbc --enable-libmodplug --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-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp
--enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid
--enable-zlib
libavutil 54. 11.100 / 54. 11.100
libavcodec 56. 12.100 / 56. 12.100
libavformat 56. 12.103 / 56. 12.103
libavdevice 56. 2.100 / 56. 2.100
libavfilter 5. 2.103 / 5. 2.103
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
[mxf @ 0000000004e833a0] "OPAtom" with 2 ECs - assuming OP1a
Input #0, mxf, from 'MORTDECAI_TLR_S_QBP-XX_ENC-reel-1-jp2k.mxf':
Metadata:
uid : 5831cb6f-9270-4545-a789-5b79221e0074
generation_uid : 9583e162-55e1-46ac-b111-4ee032c5f74e
company_name : QubeCinema, Inc.
product_name : QubeMaster Pro
product_version : 2.5
product_uid : a6d3ea56-8155-4dfc-86f6-664b12671427
modification_date: 1969-08-14 04:58:00
application_platform: win32
timecode : 00:00:00:00
Duration: 00:01:38.42, start: 0.000000, bitrate: 91072 kb/s
Stream #0:0: Video: jpeg2000 (JPEG 2000 digital cinema 2K), xyz12le,
2048x858, 24 tbr, 24 tbn, 24 tbc
[libx264 @ 0000000002def280] using cpu capabilities: MMX2 SSE2Fast SSSE3
SSE4.2
[libx264 @ 0000000002def280] profile Main, level 4.1
[libx264 @ 0000000002def280] 264 - core 142 r2479 dd79a61 - H.264/MPEG-4
AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html -
options: cabac=0 ref=2 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=4 psy=1
psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0
cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=36
lookahead_threads=8 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=1 b_pyramid=0 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=60 keyint_min=6
scenecut=40 intra_refresh=0 rc_lookahead=20 rc=crf mbtree=1 crf=21.0
qcomp=0.60 qpmin=4 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mov, to 'Test.mov':
Metadata:
uid : 5831cb6f-9270-4545-a789-5b79221e0074
generation_uid : 9583e162-55e1-46ac-b111-4ee032c5f74e
company_name : QubeCinema, Inc.
product_name : QubeMaster Pro
product_version : 2.5
product_uid : a6d3ea56-8155-4dfc-86f6-664b12671427
modification_date: 1969-08-14 04:58:00
application_platform: win32
timecode : 00:00:00:00
encoder : Lavf56.12.103
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p,
1920x1080, q=-1--1, 24 fps, 12288 tbn, 24 tbc
Metadata:
encoder : Lavc56.12.100 libx264
Stream mapping:
Stream #0:0 -> #0:0 (jpeg2000 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame= 2362 fps=9.4 q=-1.0 Lsize= 52668kB time=00:01:38.37
bitrate=4385.8kbits/s
video:52642kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.049134%
[libx264 @ 0000000002def280] frame I:73 Avg QP:17.39 size:139477
[libx264 @ 0000000002def280] frame P:1431 Avg QP:19.90 size: 25280
[libx264 @ 0000000002def280] frame B:858 Avg QP:20.86 size: 8797
[libx264 @ 0000000002def280] consecutive B-frames: 27.3% 72.7%
[libx264 @ 0000000002def280] mb I I16..4: 51.5% 0.0% 48.5%
[libx264 @ 0000000002def280] mb P I16..4: 15.0% 0.0% 2.6% P16..4: 29.8%
6.5% 1.2% 0.0% 0.0% skip:44.9%
[libx264 @ 0000000002def280] mb B I16..4: 1.6% 0.0% 0.3% B16..8: 13.1%
3.0% 0.1% direct:11.6% skip:70.4% L0:38.5% L1:54.3% BI: 7.1%
[libx264 @ 0000000002def280] coded y,uvDC,uvAC intra: 34.6% 64.0% 28.7%
inter: 8.6% 22.5% 1.1%
[libx264 @ 0000000002def280] i16 v,h,dc,p: 49% 21% 17% 13%
[libx264 @ 0000000002def280] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 18% 15% 7%
8% 8% 7% 7% 5%
[libx264 @ 0000000002def280] i8c dc,h,v,p: 55% 18% 21% 6%
[libx264 @ 0000000002def280] Weighted P-Frames: Y:10.3% UV:5.0%
[libx264 @ 0000000002def280] ref P L0: 74.0% 26.0%
[libx264 @ 0000000002def280] kb/s:4381.77
Any ideas what may be wrong?
More information about the ffmpeg-user
mailing list