動画エンコードwindows版ffmpeg

タイトルの通り、windows8.1でffmpegを動かすことになったので、過去の記事を見ながら、設定して見たのですが、動かなかったので、あらためてフィルター関連を調べてみましたので、まとめます。私用のメモなので、勘違いだったり間違っていたり、嘘八百だったりするかもしれません。

 

 

さくっと、リストで載せましょう。それが楽だw

 

一応、メモ。

ffmpegをつかって、tsファイルをmp4ファイルに変換しようとしています。プロファイルはHigh@4.2、1280×720、29.97fps(60fpsにするか悩み中。)

コマンドは以下。

</p>
<p>ffmpeg.exe -y -i sample.m2t -f mp4 -movflags faststart -s 1280x720 -r 30000/1001 -vcodec libx264 -threads 0 -acodec copy -absf aac_adtstoasc -pass 1 -fpre test.ffpreset a.mp4</p>
<p>ffmpeg.exe -y -i sample.m2t -f mp4 -movflags faststart -s 1280x720 -r 30000/1001 -vcodec libx264 -threads 0 -acodec copy -absf aac_adtstoasc -pass 2 -fpre test.ffpreset a.mp4</p>
<p>

 

presetの中身は以下。

</p>
<p>level=41 #プロファイルレベル1~5.1<br />
b=2048k #Set bitrate in bits/s. Note that FFmpeg’s b option is expressed in bits/s, while x264’s bitrate is in kilobits/s.<br />
bt=2048k #1-pass時に使うビットレート。だと思う。<br />
coder=ac #x264option.Enable CABAC. vlc=Enable CAVLC and disable CABAC<br />
refs=4 #Number of reference frames each P-frame can use. The range is from 0-16.P/Bフレームと参照フレームまでの最大距離。又は,動き補償の際に参照できるフレームの上限数、と表現されている.おそらくであるが,Frameref=refsだと思われる.<br />
deblock=1:1:1 #デブロックフィルタ。品質向上に比べて時間低下は極めて僅か。anime=1:1or0:0がよいと言われる。1:0:0、1:2:2,1:0:0、1:-1:-1などと設定される。<br />
me_method=umh #動き捜索アルゴリズム。基本hex、品質重視umh<br />
subq=7 #(subme)Sub-pixel motion estimation method.品質優先で9、速度優先で6、5以下は×<br />
psy=1 #心理視覚最適化。無効にするには0を指定。<br />
cmp=+chroma #フルピクセルの動き予測で用いられる比較関数。chroma=色情報を含めた動き予測をする。subq が 5 以上で有効。subqが4以下の時は、--no-chroma-meと同じ。<br />
me_range=24 #x264option.Maximum range of the motion search in pixels. 動き捜索範囲.<br />
trellis=2 #量子化後の端数処理についてのオプション。よく理解できない。2でいいと思う。<br />
8x8dct=1 #8x8 離散コサイン変換。これを指定すると、HighProfileになる。<br />
threads=0 #実行時のCPUスレッドの数。0=auto。<br />
nr=0 #たぶん、ノイズリダレクション。0でいいと思う。<br />
bf=1 #Bフレームを最大何枚まで連続して挿入して良いかの設定。初期値3、範囲0~16。0でBフレームを使用しない。3以上ではそれほど変わらない。<br />
b_strategy=2 #(b-adapt)Bフレームを使うならb-adaptは完全にするのが望ましい。最大連続数の範囲で、Bフレームに適するフレームか否かを自動で判別する。Bフレームに適さないものはPフレームとして処理する。無効(0)にすると常にBフレーム連続数で設定した枚数を連続して使う。完全(2)は簡易(1)より正確な判定を行うが、Bフレーム連続数が多いほど遅くなる。<br />
weightb=1 #Bフレームのための重み付け予測。0=off、1=on<br />
weightp=2 #Pフレームの加重予測方法。0=off、1=refs重み付けによる加重予想、2=refs重み付けと重複による加重予測。<br />
g=300 #(keyint)IDRフレームの最大間隔。def=250。fps x 5 or 10が良いと言う話もある。<br />
keyint_min=1 #IDRフレームの最小間隔を指定。この最小間隔の中にシーンチェンジが含まれた場合、エンコードはIフレームとして行うが、新しいGOPを開始しない。1で良い。<br />
sc_threshold=80 #シーンチェンジ検出の閾値.アニメの場合は60~80動きの多いアニメほど高めにすると良い。<br />
rc_lookahead=50 #フレームタイプとレートコントロールのために先読みする。デフォルトは40大きな値はより遅く、よりメモリを要求するがより精密な結果をもたらす。<br />
mbtree=1 #主に低ビットレート威力を発揮する画質改善機能。時間軸で映像を観察し、重要になりそうな部分の品質を上げ、そうでない部分は品質を下げるという処理を行います。<br />
crf=23.0 #固定 ”品質” でのエンコードモード.<br />
qcomp=0.85 #quantizer(量子化)の圧縮。0~1低い数値にするとビットレートの変動幅が低くなる。=画質の変動幅が大きくなる。高い数値にするとquantizerの変動幅が低くなる。=画質の変動幅が小さくなる。<br />
qmin=10 #quantizerの最小値<br />
qmax=30 #quantizerの最大値<br />
qdiff=8 #quantizerの変動幅<br />
i_qfactor=0.71 #I-Pフレーム間のq値の比(Iフレームのq値/Pフレームのq値).<br />
partitions=+parti8x8+parti4x4+partp8x8+partb8x8<br />
flags=+loop</p>
<p>

以下は、MediaInfoから、引っこ抜いた設定なんだけど、ffmpegでは設定できないのか、書き方が悪いのか、記載しても動かなかったもの。

 

</p>
<p>#analyse=0x3:0x113<br />
#psy_rd=1.00:0.00<br />
#mixed_ref=1<br />
#chroma_me=1<br />
#cqm=0<br />
#deadzone=21,11<br />
#fast_pskip=1<br />
#chroma_qp_offset=-2<br />
#lookahead_threads=1<br />
#sliced_threads=0<br />
#decimate=1<br />
#interlaced=0<br />
#bluray_compat=0<br />
#constrained_intra=0<br />
#b_pyramid=2<br />
#b_adapt=1<br />
#b_bias=0<br />
#direct=1<br />
#open_gop=0<br />
#intra_refresh=0<br />
#rc=crf<br />
#ip_ratio=1.40<br />
#aq=1:1.00<br />
#flags2=+bpyramid+mixed_refs+wpred+dct8x8+fastpskip</p>
<p>