使用avconv减小mp4的大小


5

我正在看这个问题

减小MP4的尺寸

我想用avconv做到这一点,但是,我也希望将帧大小缩小一半左右。我的问题是我什么时候做的

avconv -i "$file" -s 640x480 -strict experimental "mp4/$file.mp4"

输出非常像素化并且太多地降低了视频质量。我正在尝试将视频文件转换为我的掌上电脑的较小尺寸。基本上,我试图得到这个:

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L3.1
Format settings, CABAC                   : No
Format settings, ReFrames                : 4 frames
Format settings, GOP                     : M=2, N=48
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 21mn 31s
Bit rate mode                            : Variable
Maximum bit rate                         : 1 101 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 23.976 fps
Standard                                 : Component
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Default                                  : Yes
Forced                                   : No

看起来像这样

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3.0
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 21mn 45s
Bit rate                                 : 218 Kbps
Width                                    : 624 pixels
Height                                   : 352 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.041
Stream size                              : 33.9 MiB (60%)
Writing library                          : x264 core 138 r2 9e941d1
Encoding settings                        : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / 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 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / 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.40 / aq=1:1.00

问题:如何使用avconv降低比特率和帧大小?如果无法在avconv中完成,我可以在ffmpeg中完成吗?视频在上部〜= 200mb,视频在下部〜= 50mb,我希望得到50mb,尽可能少的像素化。

Answers:


4

请无论何时向avconv寻求帮助,请附上其完整输出。否则谁回复就不得不求助于猜测。

我在这种情况下的猜测是你的avconv(或者更确切地说是libavcodec)不是用libx264编译的,所以使用内部mpeg4 ASP编码器(带有残暴的默认值)。因此解决方案是获得libavcodec支持libx264 - 在Ubuntu上你应该安装libavcodec-extra-53,否则你可能需要自己编译。


我认为你是对的,我使用这个指南ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide编译ffmpeg ,但avconv不使用正确的库,让我尝试ffmpeg,当我回到家里,如果它有效
你会

5

我不知道avconv,但无论如何你应该是原始分辨率的一半。看到您的原始分辨率是1280x720,您应该使用640x360。这样编码器必须将4个像素精确调整为一个像素而不是4.52826734(组成),就像您选择的分辨率一样。当编码器没有可用的调整大小算法时,这至少避免了问题。


1
这也是一个好点,太糟糕我不能投票,将尝试
iloveretards 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.