Opened 12 years ago
Closed 12 years ago
#1460 closed defect (invalid)
x264 artefacts in quicktime player in sequences without motion/still images
Reported by: | tbart | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | unspecified | Keywords: | libx264 |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
Certain options (I am unsure which ones really are the problematic ones) lead to problems in Quicktime player in scenes without motion and (possibly?) large solid color areas.. Other players play the video without any artefacts whatsoever.
I think this is a bug in Quicktime Player, but it should be checked and possibly noted somewhere so others can avoid this pitfall.
How to reproduce:
tbart@blackknight /mnt/scratch $ ffmpeg -i artifacts_in_quicktime_player_src.mov -vcodec libx264 -preset slow -crf 25 -an artifacts_in_quicktime_player_dst.mov
ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
built on Jun 15 2012 13:46:42 with gcc 4.5.3
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-O2 -march=core2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -fomit-frame-pointer -pipe' --extra-cflags='-O2 -march=core2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -fomit-frame-pointer -pipe' --extra-cxxflags='-O2 -march=core2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -fomit-frame-pointer -pipe' --disable-static --enable-gpl --enable-version3 --enable-postproc --enable-avfilter --disable-stripping --disable-debug --disable-doc --disable-network --disable-vaapi --enable-libmp3lame --enable-libvo-aacenc --enable-libtheora --enable-libx264 --enable-libxvid --enable-libaacplus --enable-nonfree --enable-libfaac --enable-nonfree --enable-libdc1394 --enable-openal libavutil 51. 54.100 / 51. 54.100
libavcodec 54. 23.100 / 54. 23.100
libavformat 54. 6.100 / 54. 6.100
libavdevice 54. 0.100 / 54. 0.100
libavfilter 2. 77.100 / 2. 77.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'artifacts_in_quicktime_player_src.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf54.6.100
Duration: 00:00:22.00, start: 0.000000, bitrate: 25 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 550x400 [SAR 16:15 DAR 22:15], 23 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
Metadata:
handler_name : DataHandler
[buffer @ 0x934f40] w:550 h:400 pixfmt:yuv420p tb:1/25 sar:16/15 sws_param:flags=2
[buffersink @ 0x935220] No opaque field provided
[libx264 @ 0x91ddc0] using SAR=16/15
[libx264 @ 0x91ddc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64
[libx264 @ 0x91ddc0] profile High, level 3.0
[libx264 @ 0x91ddc0] 264 - core 120 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=25.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mov, to 'artifacts_in_quicktime_player_dst.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf54.6.100
Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv420p, 550x400 [SAR 16:15 DAR 22:15], q=-1--1, 25 tbn, 25 tbc
Metadata:
handler_name : DataHandler
Stream mapping:
Press [q] to stop, ? for help
DTS -1, next:-40000 st:0 invalid dropping
frame= 550 fps=131 q=-1.0 Lsize= 89kB time=00:00:21.92 bitrate= 33.4kbits/s
video:86kB audio:0kB global headers:0kB muxing overhead 4.031690%
[libx264 @ 0x91ddc0] frame I:3 Avg QP:13.75 size: 8800
[libx264 @ 0x91ddc0] frame P:506 Avg QP:28.92 size: 109
[libx264 @ 0x91ddc0] frame B:41 Avg QP:29.23 size: 138
[libx264 @ 0x91ddc0] consecutive B-frames: 89.5% 1.5% 1.1% 8.0%
[libx264 @ 0x91ddc0] mb I I16..4: 63.6% 19.2% 17.2%
[libx264 @ 0x91ddc0] mb P I16..4: 0.7% 0.2% 0.0% P16..4: 1.0% 0.2% 0.1% 0.0% 0.0% skip:97.8%
[libx264 @ 0x91ddc0] mb B I16..4: 0.1% 0.0% 0.0% B16..8: 10.9% 0.3% 0.0% direct: 0.1% skip:88.6% L0:31.1% L1:64.1% BI: 4.8%
[libx264 @ 0x91ddc0] 8x8 transform intra:22.9% inter:73.7%
[libx264 @ 0x91ddc0] direct mvs spatial:92.7% temporal:7.3%
[libx264 @ 0x91ddc0] coded y,uvDC,uvAC intra: 17.8% 26.0% 8.6% inter: 0.5% 0.5% 0.0%
[libx264 @ 0x91ddc0] i16 v,h,dc,p: 46% 41% 8% 5%
[libx264 @ 0x91ddc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 28% 23% 5% 6% 6% 7% 5% 8%
[libx264 @ 0x91ddc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 23% 18% 5% 7% 7% 8% 6% 8%
[libx264 @ 0x91ddc0] i8c dc,h,v,p: 54% 33% 11% 2%
[libx264 @ 0x91ddc0] Weighted P-Frames: Y:2.4% UV:1.6%
[libx264 @ 0x91ddc0] ref P L0: 64.1% 21.8% 12.2% 0.9% 0.8% 0.3% 0.0%
[libx264 @ 0x91ddc0] ref B L0: 76.3% 16.7% 4.3% 2.7%
[libx264 @ 0x91ddc0] ref B L1: 94.1% 5.9%
[libx264 @ 0x91ddc0] kb/s:31.74
The resulting file shows massive artifacts in every Quicktime Player version I have tested from around 00:00:10 on.
adding rc_lookahead=30 as in
ffmpeg -i artifacts_in_quicktime_player_src.mov -vcodec libx264 -preset slow -crf 25 -x264opts rc_lookahead=30 -an no_artifacts.mov
solves the problem (but I am not sure this is really the culprit..)
This also happens with directly encoding with x264 and muxing with mp4box so I *think* the problem lies within x264 encoding and not muxing - or both ffmpeg and mp4box do the same (bad) thing.
Attachments (3)
Change History (6)
by , 12 years ago
Attachment: | artifacts_in_quicktime_player_src.mov added |
---|
by , 12 years ago
Attachment: | artifacts_in_quicktime_player_dst.mov added |
---|
the encoded file - breaks with quicktime player
by , 12 years ago
Attachment: | artifacts_in_quicktime_player_dst_rc_lookahead_30.mov added |
---|
rc_lookahead set to 30 (instead of 40); works in all players
comment:1 by , 12 years ago
is this issue ffmpeg+x264 specific or does this also happen with x264 without ffmpeg ?
comment:2 by , 12 years ago
as I wrote:
"This also happens with directly encoding with x264 and muxing with mp4box so I *think* the problem lies within x264 encoding and not muxing - or both ffmpeg and mp4box do the same (bad) thing."
(i cannot play raw streams with quicktime player, so I have to mux it into a codec it accepts)
comment:3 by , 12 years ago
Keywords: | libx264 added; artifacts still motion quicktime qt player removed |
---|---|
Resolution: | → invalid |
Status: | new → closed |
Version: | 0.11.1 → unspecified |
This does not appear to be a bug in FFmpeg.
the source file - plays fine in all players