web-dev-qa-db-ja.com

avconvを使用してmp4のサイズを縮小する

私はこの質問を見ています

MP4のサイズを小さくします

avconvを使用して実行したいのですが、フレームサイズも約半分に縮小したいと思います。私の問題は私がするときです

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

出力は非常にピクセル化されており、ビデオの品質を大幅に低下させます。ハンドヘルド用にビデオファイルを小さいサイズに変換しようとしています。基本的に、私はこれを取得しようとしています:

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : [email protected]
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                           : [email protected]
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を取得したいと思います。

5

Avconvのヘルプを求めるときはいつでも、その完全な出力を添付してください。そうでなければ、返信する人は誰でも推測に頼らなければなりません。

この状況での私の推測では、avconv(より正確にはlibavcodec)はlibx264でコンパイルされていないため、内部mpeg4 ASPエンコーダー(ひどいデフォルト)が使用されます。したがって、解決策は次のとおりです。 libx264をサポートするlibavcodecを入手するには-Ubuntuではlibavcodec-extra-53をインストールする必要があります。そうしないと、自分でコンパイルする必要がある場合があります。

4
Anton Khirnov

Avconvはわかりませんが、いずれにしても元の解像度の半分にする必要があります。元の解像度が1280x720であることを確認すると、640x360を使用する必要があります。このように、エンコーダーは、選択した解像度のように4.52826734(構成)ではなく、正確に4ピクセルを1つにサイズ変更する必要があります。これにより、エンコーダーに使用可能なサイズ変更アルゴリズムがない場合の問題を少なくとも回避できます。

5
Zerobinary99