PNGフレーム用H.264 / MPEG-4:圧縮調整方法および方法

PNGフレーム用H.264 / MPEG-4:圧縮調整方法および方法

私はしばしば、reddit、instagram、gfycatなどにアップロードするためにビデオ形式に変換する必要がある.png形式(最小圧縮)のすべてのフレームを準備してデジタルアニメーションを作成します。

私はさまざまな圧縮標準についてはよくわかりません。しかし、一般的に私に適した方法を見つけて、これらのサイトで許可するファイルを作成しました。

# step 1
mencoder mf://frame*.png -mf w=$WIDTH:h=$HEIGHT:fps=$FPS:type=png \
         -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=16000:keyint=15:mbd=2:trell \
         -oac copy -o step1.avi

# step 2
mencoder step1.avi -o step2.mp4 -of lavf -lavfopts format=mp4 -ovc x264 -sws 9  \
         -x264encopts nocabac:level_idc=30:bframes=0:bitrate=2048:threads=auto:turbo=1:global_header:threads=auto:subq=5:frameref=6:partitions=all:trellis=1:chroma_me:me=umh

しかし、それが何をしているのかわからないので、*次のことはできません。

  • 指示として

  • 圧縮率を調整します。

実際、私は通常、あまり圧縮されていない結果を好みます。

PNGフレームからどのルートに移動できますか?Webフレンドリーなビデオファイル(私の考えではH.264/MPEG-4 MP4)これで圧縮を調整できますか?


*例:サンプルフレームワークです。

ここに画像の説明を入力してください。 (注:正直に言うと、VLCツールを使用してスナップショットを撮るよりもVLCで見るとはるかに悪くなります。これは問題を理解しやすく、結果を比較するのが困難です)。

でもステップ1$WIDTH元の画像と一致するように指定しましたが、$HEIGHTどちらも明らかに変更され、アスペクト比は維持されませんでした。最終画像もよりぼやけており、これはサイズ変更の結果である可能性があります。


編集する:以下のmplayerウィンドウの実際のシステムスクリーンショットを参照してください(VLCと同じ)。タイルグラウトは、PNGソースやVLC「内部」スクリーンショット機能と比較して非常にぼやけています。

ここに画像の説明を入力してください。

詳細:

ここに画像の説明を入力してください。

答え1

ffmpeg

コメントで指摘したように、単純な「質量」パラメータまたは「スケジュール比率」(読み取り)をffmpeg使用して、優れた1段階ソリューションが提供されます。crfこの投稿crf)を説明してください。

バラよりこの投稿ffmpegを使用してPNGからH.26​​4に変換する簡単な手順です。

簡単に言うと:

# Assuming the frames are called frame0000.png, frame0001.png ...
# 
# set $FPS, $WIDTH, $HEIGHT, $FIRSTFRAME, 
# $CRF (see above) to the desired value, then run:

ffmpeg -r $FPS -f image2 -s ${WIDTH}x$HEIGHT -start_number $FIRSTFRAME \
       -i frame%04d.png -vcodec libx264 -crf $CRF -pix_fmt yuv420p output.mp4

$CRFデフォルト値は 23 です。 23より小さい値はより良い品質とより大きなファイルを提供し、23より大きい値は圧縮を増加させます。

関連情報