这是我用于两者的命令行和输出。有什么想法吗?两个视频的比特率相当:都在 1500Kbps 左右。
ffmpeg 命令:
ffmpeg -y -i aud.mp4 -acodec copy -i input.mp4 -ac 2 -vcodec libx264 -s 1280x720
-b 1850k -keyint_min 25 -g 250 -deinterlace -coder 1 -trellis 1 -directpred 1
-b_strategy 1 -bf 3 -refs 3 -subq 5 -me_method hex -me_range 16
-partitions +parti8x8+parti4x4+partp8x8+partb8x8 -flags +loop
-flags2 +bpyramid+wpred+mixed_refs+dct8x8+fastpskip+mbtree -bufsize 2000k
-sc_threshold 40 -cmp +chroma -qdiff 4 -qmin 5 -qmax 51 -qcomp 0.6 -i_qfactor 0.71
-t 0:0:20 -wpredp 2 -r 25 -bt 1500000 output.mp4
ffmpeg 输出:
FFmpeg version SVN-r21602, Copyright (c) 2000-2010 Fabrice Bellard, et al.
built on Feb 24 2010 18:28:53 with gcc 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
configuration: --prefix=/var/jails/build/ --enable-static --disable-altivec --disable-debug --disable-network --enable-libvorbis --enable-libtheora --enable-libxvid --enable-libx264 --enable-libfaad --enable-libfaac --enable-gpl --disable-ffplay --disable-ffserver --enable-nonfree --enable-avfilter --enable-avfilter-lavf --enable-libmp3lame --enable-pthreads --enable-postproc --disable-shared --enable-static --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-avfilter --enable-avfilter-lavf
libavutil 50. 8. 0 / 50. 8. 0
libavcodec 52.51. 0 / 52.51. 0
libavformat 52.50. 0 / 52.50. 0
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.17. 0 / 1.17. 0
libswscale 0. 9. 0 / 0. 9. 0
libpostproc 51. 2. 0 / 51. 2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bad.aud.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: M4A mp42isomndia
encoder : Nero AAC codec / 1.3.3.0
Duration: 00:07:24.30, start: 0.000000, bitrate: 90 kb/s
Stream #0.0(und): Audio: aac, 44100 Hz, stereo, s16, 89 kb/s
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x8b6fe10]max_analyze_duration reached
Seems stream 1 codec frame rate differs from container frame rate: 50.00 (50/1) -> 25.00 (25/1)
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'bad.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
encoder : Sorenson Squeeze 5.0
Duration: 00:07:24.32, start: 0.000000, bitrate: 910 kb/s
Stream #1.0(und): Audio: aac, 48000 Hz, stereo, s16, 320 kb/s
Stream #1.1(und): Video: h264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 524 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #1.2(und): Data: mp4s / 0x7334706D
Stream #1.3(und): Data: mp4s / 0x7334706D
Stream #1.4(eng): Data: rtp / 0x20707472, 23 kb/s
Stream #1.5(eng): Data: rtp / 0x20707472, 34 kb/s
[libx264 @ 0x8bae2c0]using SAR=1/1
[libx264 @ 0x8bae2c0]using cpu capabilities: MMX2 SSE2 SSE3 Cache64
[libx264 @ 0x8bae2c0]profile High, level 3.1
Output #0, mp4, to 'out.mp4':
Stream #0.0(und): Video: libx264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], q=5-51, 1850 kb/s, 25 tbn, 25 tbc
Stream #0.1(und): Audio: aac, 44100 Hz, stereo, 89 kb/s
Stream mapping:
Stream #1.1 -> #0.0
Stream #0.0 -> #0.1
Press [q] to stop encoding
frame= 499 fps= 10 q=-1.0 Lsize= 3514kB time=19.92 bitrate=1445.3kbits/s
video:3279kB audio:220kB global headers:0kB muxing overhead 0.432718%
[libx264 @ 0x8bae2c0]frame I:3 Avg QP: 7.77 size: 66763
[libx264 @ 0x8bae2c0]frame P:208 Avg QP: 6.89 size: 12756
[libx264 @ 0x8bae2c0]frame B:288 Avg QP:11.95 size: 1748
[libx264 @ 0x8bae2c0]consecutive B-frames: 22.0% 1.2% 1.8% 75.0%
[libx264 @ 0x8bae2c0]mb I I16..4: 66.1% 10.0% 23.9%
[libx264 @ 0x8bae2c0]mb P I16..4: 3.1% 1.4% 1.6% P16..4: 14.5% 2.0% 1.5% 0.0% 0.0% skip:75.9%
[libx264 @ 0x8bae2c0]mb B I16..4: 1.0% 0.6% 0.2% B16..8: 2.6% 0.2% 0.2% direct: 5.7% skip:89.4% L0:45.2% L1:46.4% BI: 8.4%
[libx264 @ 0x8bae2c0]8x8 transform intra:23.9% inter:38.3%
[libx264 @ 0x8bae2c0]coded y,uvDC,uvAC intra: 38.0% 34.2% 18.6% inter: 4.9% 6.7% 2.1%
[libx264 @ 0x8bae2c0]i16 v,h,dc,p: 59% 34% 4% 3%
[libx264 @ 0x8bae2c0]i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 35% 28% 2% 2% 2% 2% 2% 3%
[libx264 @ 0x8bae2c0]i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 35% 15% 4% 4% 5% 4% 4% 4%
[libx264 @ 0x8bae2c0]Weighted P-Frames: Y:9.1%
[libx264 @ 0x8bae2c0]ref P L0: 71.5% 18.0% 3.2% 3.5% 3.7%
[libx264 @ 0x8bae2c0]ref B L0: 90.3% 7.4% 2.3%
[libx264 @ 0x8bae2c0]ref B L1: 91.5% 8.5%
[libx264 @ 0x8bae2c0]kb/s:1345.52
MEncoder 命令:
mencoder bad.mp4 -oac pcm -ovc x264 -ofps 25.0 -vf scale=1280:720,harddup
-o out2.mp4 -srate 48000 -endpos 20
-x264encopts threads=1:bitrate=1850:vbv_bufsize=2000:bframes=3:frameref=3:subq=5:me=hex:b_pyramid=normal:partitions=all
MEncoder 输出:
MEncoder SVN-r30554-4.1.2 (C) 2000-2010 MPlayer Team
WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
success: format: 0 data: 0x0 - 0x3036dc5
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x8ed2b70]max_analyze_duration reached
[lavf] Audio stream found, -aid 0
[lavf] Video stream found, -vid 1
VIDEO: [H264] 1280x720 24bpp 25.000 fps 524.0 kbps (64.0 kbyte/s)
[V] filefmt:44 fourcc:0x34363248 size:1280x720 fps:25.000 ftime:=0.0400
==========================================================================
Opening audio decoder: [faad] AAC (MPEG2/4 Advanced Audio Coding)
AUDIO: 48000 Hz, 2 ch, s16le, 320.0 kbit/20.83% (ratio: 40000->192000)
Selected audio codec: [faad] afm: faad (FAAD AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [harddup]
Opening video filter: [scale w=1280 h=720]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect..000 [0:0]
[swscaler @ 0x8938400]using unscaled yuv420p -> yuv420p special converter
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2 SSE3 Cache64
x264 [info]: profile High, level 3.1
New_Face failed. Maybe the font path is wrong.
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
New_Face failed. Maybe the font path is wrong.
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
Writing header...1f ( 2%) 0.00fps Trem: 0min 0mb A-V:0.044 [0:0]]
ODML: vprp aspect is 16:9.
Setting audio delay to 0.080s.
Writing header...
ODML: vprp aspect is 16:9.
Setting audio delay to 0.080s.
Pos: 20.0s 542f ( 8%) 10.06fps Trem: 10min 79mb A-V:0.053 [1144:1536]
Flushing video frames.
Writing index...
Writing header...
ODML: vprp aspect is 16:9.
Setting audio delay to 0.080s.
Video stream: 1063.410 kbit/s (132926 B/s) size: 2876525 bytes 21.640 secs 542 frames
Audio stream: 1536.000 kbit/s (192000 B/s) size: 3840000 bytes 20.000 secs
x264 [info]: frame I:3 Avg QP:10.62 size:106222
x264 [info]: frame P:216 Avg QP:10.67 size: 9236
x264 [info]: frame B:322 Avg QP:13.29 size: 1748
x264 [info]: consecutive B-frames: 19.7% 0.7% 2.2% 77.3%
x264 [info]: mb I I16..4: 58.7% 8.0% 33.3%
x264 [info]: mb P I16..4: 2.8% 1.4% 1.3% P16..4: 12.8% 1.6% 1.0% 0.2% 0.2% skip:78.7%
x264 [info]: mb B I16..4: 0.7% 0.6% 0.2% B16..8: 2.4% 0.3% 0.2% direct: 6.7% skip:88.9% L0:44.3% L1:47.1% BI: 8.5%
x264 [info]: 8x8 transform intra:26.2% inter:52.8%
x264 [info]: coded y,uvDC,uvAC intra: 38.7% 35.5% 16.8% inter: 3.9% 6.7% 1.0%
x264 [info]: i16 v,h,dc,p: 56% 37% 4% 4%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 33% 29% 2% 2% 2% 2% 2% 3%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 33% 16% 4% 4% 5% 4% 4% 4%
x264 [info]: Weighted P-Frames: Y:8.8%
x264 [info]: ref P L0: 69.0% 20.1% 3.6% 3.3% 4.0%
x264 [info]: ref B L0: 91.5% 6.9% 1.6%
x264 [info]: ref B L1: 95.0% 5.0%
x264 [info]: kb/s:1063.41
答案1
我是个白痴。视频是非隔行扫描的,我正在将标志传递-deinterlace
给 ffmpeg。这就是伪影的来源。