我有一个 25fps 的 .MTS 1080i(mediainfo),我用 进行了去隔行扫描avconv -i input.MTS -vf yadif -c:a copy output.mp4
。正如 wiki 所述,yadif 的默认值为 0,“每帧输出一帧”。
我的问题是,为什么output.mp4
有 50fps?另外,它比输入小得多,这正常吗?
按照要求:
wantoast@crunchbang:~/videos/video/videocamera$ avconv -i 00000.MTS
avconv version 0.8.16-6:0.8.16-1, Copyright (c) 2000-2014 the Libav developers
built on Sep 16 2014 23:10:48 with gcc 4.7.2
Input #0, mpegts, from '00000.MTS':
Duration: 00:00:37.44, start: 1.000033, bitrate: 16506 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 50 tbc
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, s16, 256 kb/s
Stream #0.2[0x1200]: Subtitle: pgssub
At least one output file must be specified
wantoast@crunchbang:~/videos/video/videocamera$ avconv -i 00000.MTS -vf yadif -c:a copy output.mp4 avconv 版本 0.8.16-6:0.8.16-1,版权所有 (c) 2000-2014 Libav 开发人员 于 2014 年 9 月 16 日 23:10:48 使用 gcc 4.7.2 构建 输入 #0,mpegts,来自‘00000.MTS’: 时长:00:00:37.44,开始:1.000033,比特率:16506 kb/s 计划 1 流 #0.0[0x1011]:视频:h264(高)、yuv420p、1920x1080 [PAR 1:1 DAR 16:9]、50 fps、50 tbr、90k tbn、50 tbc 流 #0.1[0x1100]: 音频: ac3, 48000 Hz, 立体声, s16, 256 kb/s 流 #0.2[0x1200]: 字幕: pgssub [缓冲区@0xa5eb40] w:1920 h:1080 pixfmt:yuv420p [yadif @ 0xa5cba0] 模式:0 奇偶校验:-1 自动启用:0 [libx264 @ 0xa59b00] 使用 SAR=1/1 [libx264 @ 0xa59b00] 使用 CPU 功能:MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX [libx264 @ 0xa59b00] 配置文件 Main,级别 4.2 [libx264 @ 0xa59b00] 264 - 核心 123 r2189 35cf912 - H.264/MPEG-4 AVC 编解码器 - Copyleft 2003-2012 - http://www.videolan.org/x264.html - 选项:cabac=1 ref=3 deblock=1:0:0 analyze=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 combined_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2threads=6sliced_threads=0nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=0 b_adapt=1 b_bias=0 direct=1 weightb=0 open_gop=1 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.25 aq=1:1.00 输出 #0,mp4,到‘output.mp4’: 元数据: 编码器:Lavf53.21.1 流 #0.0:视频:libx264、yuv420p、1920x1080 [PAR 1:1 DAR 16:9]、q=-1--1、50 tbn、50 tbc 流 #0.1:音频:ac3、48000 Hz、立体声、256 kb/s 流映射: 流 #0:0 -> #0:0 (h264 -> libx264) 流 #0:1 -> #0:1 (复制) 按 ctrl-c 停止编码 帧=1870 fps=16 q=-1.0 Lsize=29093kB 时间=37.38 比特率=6375.8kbits/s 重复=935 丢弃=0 视频:27902kB 音频:1170kB 全局标头:0kB 多路复用开销 0.070776% [libx264 @ 0xa59b00] 帧 I:122 平均 QP:22.47 大小: 49023 [libx264 @ 0xa59b00] 帧 P:1748 平均 QP:25.43 大小: 12923 [libx264 @ 0xa59b00] mb I I16..4:61.9%0.0%38.1% [libx264 @ 0xa59b00] mb P I16..4: 2.8% 0.0% 0.5% P16..4: 36.5% 2.8% 1.7% 0.0% 0.0% 跳过:55.7% [libx264 @ 0xa59b00] 编码 y、uvDC、uvAC 帧内:38.5% 80.0% 19.8% 帧间:7.1% 27.2% 0.2% [libx264 @ 0xa59b00] i16 v,h,dc,p: 35% 18% 15% 31% [libx264 @ 0xa59b00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:28% 18% 35% 4% 3% 3% 4% 3% 2% [libx264 @ 0xa59b00] i8c 直流,h,v,p:50%18%26%6% [libx264 @ 0xa59b00] 加权 P 帧:Y:1.1% UV:0.7% [libx264 @ 0xa59b00] 参考 P L0: 63.3% 9.7% 13.0% 13.9% 0.1% [libx264 @ 0xa59b00] kb/秒:6111.45
wantoast@crunchbang:~/videos/video/videocamera$ avconv -i output.mp4
avconv version 0.8.16-6:0.8.16-1, Copyright (c) 2000-2014 the Libav developers
built on Sep 16 2014 23:10:48 with gcc 4.7.2
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x216e460] multiple edit list entries, a/v desync might occur, patch welcome
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.1
Duration: 00:00:37.47, start: 0.000000, bitrate: 6358 kb/s
Stream #0.0(und): Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 6111 kb/s, 50 fps, 50 tbr, 50 tbn, 100 tbc
Stream #0.1(und): Audio: ac3, 48000 Hz, stereo, s16, 256 kb/s
At least one output file must be specified
答案1
原始文件每秒 25 场,每秒 50 帧才能保留正确的运动。事实上,即使 YouTube 也使用每秒 25 帧,并且会丢失一半的运动。这是错误的。
除此之外,还需要 -crf 18 才能获得足够好的质量。