私の高画質動画:1080pで60fpsでスタックしています。問題は再生中にラグが発生することです
ffmpegで720pに変換してみました
ffmpeg -i MyMovie.mkv -r 60 -s hd720 MyMovie_720p.mkv
しかし、ビットレートが32.3Mbpsから2.8Mbpsに低下したため、画質が著しく低下しています。どのように私はビデオストリームのために正しいビットレートを指定し、他のすべてのストリームは原始的にコピーされたままにすることができますか?
ファイルmediainfoを入力します
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.2
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 2h 58mn
Bit rate : 32.3 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 59.940 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.260
Stream size : 40.2 GiB (92%)
Writing library : x264 core 116 r2019 9cc407d
Encoding settings : cabac=1 / ref=4 / deblock=1:-2:-1 / analyse=0x3:0x113 / me=umh / subme=10 / psy=1 / psy_rd=0.80:0.20 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-3 / threads=6 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=6 / 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=60 / rc=crf / mbtree=0 / crf=14.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=50000 / vbv_bufsize=62500 / crf_max=0.0 / nal_hrd=none / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:0.60
Language : English
Default : Yes
Forced : No
Matrix coefficients
: BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
60 None 2014-02-10
ここでは、最高品質のビデオ(私は結果のファイルサイズについて話していない)を与える必要があります例です。このビデオは、すべてのデバイスやプレーヤーで再生できない場合があることに注意してください
ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 0 -preset veryslow -c:a copy MyMovie_720p.mkv
視覚的にロスのない」品質を得るためには
ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow -c:a copy MyMovie_720p.mkv
さて、ここで何があるか見てみましょう
スケールビデオフィルタ は、ビデオのサイズを変更するためのものです。ffmpeg はアスペクト比を維持しながら自動的に正しい値を再計算します
-crf
オプションで品質管理されています
クオンタイザーのスケールの範囲は0~51:ここで0はロスレス、23はデフォルト、51は最悪の可能性です。値が低いほど品質が高く、主観的にまともな範囲は18~28です。18 は、視覚的にはロスレス、またはほぼそうだと考えてください:入力と同じ、またはほぼ同じに見えるはずですが、技術的にはロスレスではありません
範囲は指数関数的なので、CRF値を+6にするとビットレートが約半分になり、-6にするとビットレートが約2倍になります。一般的な使用法は、許容できる品質を提供する最高のCRF値を選択することです。出力が良さそうであれば、高い値を試し、悪そうであれば低い値を選びます
詳細は x264 エンコーディングガイド を参照してください
-preset
オプションで、動画のエンコード速度と圧縮効率のトレードオフをコントロールできます。これらは、ultrafast、superfast、veryfast、fast、fast、medium、slower、veryslowです。デフォルトは medium です。veryslow オプションは最高の圧縮効率を提供しますが(同じ品質でもファイルサイズが小さくなります)、その名の通り非常に遅くなります
オーディオは、ストリームコピーされます 入力ファイルから出力ファイルに直接変更なしでコピーされます
115 Nikola Dimitrijevic 2014-02-10
念のため、FFMPEGのスケーリングディメンションにはいくつかの制限があります。それはそれぞれの高さを受け入れていません、ここでは、寸法のための最良の推奨のリストを小さくします
ビデオコーデックは、ピクセルの幅と高さが 16 の倍数であると、より良いパフォーマンスを発揮します。エンコーディング設定では、任意の幅と高さを使用することができますが、最適でない寸法は、画質が低下したり、フレームレートが低下したりすることがあります。最高の画質と再生を実現するためには、16の倍数の幅と高さの寸法をビデオに使用する必要があります
Recommended width and height for videos with 16:9 aspect ratios:
Best Choice: 2nd Best: 3rd Best:
Multiples of 16 Multiples of 8 Multiples of 4
1920 x 1080 1792 x 1008 1856 x 1044
1280 x 720 1152 x 648 1216 x 684
1024 x 576 896 x 504 1088 x 612
768 x 432 640 x 360 960 x 540
512 x 288 384 x 216 832 x 468
256 x 144 128 x 72 704 x 396
576 x 324
448 x 252
320 x 180
192 x 108
3 Ewald Bos 2018-11-15