雑記

没ネタは @ega_flame に

備忘録

[ リスト | 詳細 ]

記事検索
検索

全1ページ

[1]

あとはcrfだけ場合に応じて調整している。 などと書いておきながら、
2K1KフルHDだと画質を維持しようとすると、重くでかいファイルになってしまったので調整した。
--sar 1:1 --crf 17 --preset veryslow --tune animation --scenecut 50 --qpmin 9 --qpmax 48 --qpstep 12 --weightp 0 --me esa -m 10 --merange 32 --aq-mode 2 --aq-strength 0.9 --psy-rd 0.8:0.1 --bframes 3 --ref 3 --nal-hrd vbr --vbv-maxrate 9000 --vbv-bufsize 9000 --level 4.1 --keyint 300 --min-keyint 3 --mvrange 511 --b-pyramid strict --slices 4 --aud --colorprim bt709 --transfer bt709 --colormatrix bt709 --threads auto --thread-input --ssim

とりあえずBDが目的なので、お約束なパラメータは触れない。
  • nal-hdr , aud , sar 1:1 , level 4.1, bt709系は必須(fpsはMUX時に入れている)。
  • 必然的にvbvの2つとslices 4以上が必要
  • b-pyramidのnormalはhelpにあるように not blu-ray compatible
  • weightpは0でOFFにしておくのが無難。というのも再生側で対応できていないものがあるとのこと
  • bflamesは3以下、refは6以下(1080p/1080iでは4以下)、ファイルがでかくなるので規格を無視してもっと上げたいのだが、再生時にオーバーフローしかねないので渋々この値
そこでレートコントロール。vbvの値を抑え、下がった画質をその他のパラメータで頑張っている。
カスタムマトリクスは誤爆が怖いのと、マンドクサイので却下。
あとはソース側で見て分からない程度にNRしておけばこれくらいはでる。

(サンプル:けいおん!!第1話)
   【クリックで拡大】

イメージ 1
およそ一番重い場面。ffdshowで可視化。モーションがエライことに!
映像遅延は愛嬌 --me esaと-m 10によるところか?

avs [info]: 1920x1080p 1:1 @ 30000/1001 fps (cfr)
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64
x264 [info]: profile High, level 4.1
x264 [info]: frame I:420   Avg QP:15.26  size:133023
x264 [info]: frame P:12215 Avg QP:18.20  size: 38042
x264 [info]: frame B:31421 Avg QP:20.56  size:  8273
x264 [info]: consecutive B-frames:  1.4%  3.0% 14.0% 81.5%
x264 [info]: mb I  I16..4: 14.8% 65.8% 19.4%
x264 [info]: mb P  I16..4:  7.3%  6.9%  0.8%  P16..4: 50.7% 12.3%  3.3%  0.2%  0.2%    skip:18.3%
x264 [info]: mb B  I16..4:  0.6%  0.3%  0.0%  B16..8: 32.8%  3.1%  0.3%  direct: 4.9%  skip:57.8%  L0:47.2% L1:50.4% BI: 2.4%
x264 [info]: 8x8 transform intra:47.5% inter:57.3%
x264 [info]: direct mvs  spatial:100.0% temporal:0.0%
x264 [info]: coded y,uvDC,uvAC intra: 30.1% 56.6% 21.6% inter: 6.1% 22.3% 1.0%
x264 [info]: i16 v,h,dc,p: 43% 23% 12% 21%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 11% 22%  7%  8%  9%  9%  8% 10%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 14% 10%  7% 11% 11%  8%  8%  8%
x264 [info]: i8c dc,h,v,p: 40% 32% 21%  7%
x264 [info]: ref P L0: 62.4% 36.5%  1.1%
x264 [info]: ref B L0: 76.5% 23.5%
x264 [info]: ref B L1: 87.6% 12.4%
x264 [info]: SSIM Mean Y:0.9948325
x264 [info]: kb/s:4247.62
encoded 44056 frames, 2.99 fps, 4247.62 kb/s
SSIMが0.9948でちょっとやりすぎな感じだが。。。
見るとIフレームが容量を食っている。が、数が420と少なく、シーンチェンジを考えればこんなものかと。
consecutive B-framesからbframesはまだ上げる余地がある。しかし、規格縛りでできない。。。。
逆にrefは3があるのはref Pのみ、しかも1.1%。これは上げなくてもOK。
.......................
24fps化すれば、また変わってくるだろうけど、とりあえず。

開く コメント(1)

動画を Blu-ray に焼く

今回はいつもと趣向をかえて技術ちっくな内容。忘れた時用メモです。
ts抜き とか リッピング とかその手の情報は出てくるのだが、やりたいのは逆。
PCにある動画を元にBlu-rayデッキで再生できる Blu-ray DISK を作りたいわけだ。
どうもデッキで再生するだけなら目新しいことでも無いようだが情報が少ない。

【動画編集ソフトを使用する場合】

用意するもの
  • x264        :ビデオエンコーダ
  • AviUtl        :動画編集ソフト
  • x246出力プラグイン:AviUtlでx264出力をするためのもの
  • avisynth       :バッチスクリプトでエンコードできる
  • tsMuxeR      :Mpeg2-TSを作成する
  • multiAVCHD     :最終的にBDMV形式にまとめるときに使用
  • ImgBurn       :ライティングソフト


オーディオエンコーダはaftenなのだがバイナリ作成が面倒なのでmultiAVCHD付属のeac3toを使用。
動画編集はVirtualDub系でもよいのだがAviUtlは24fps化とか楽なので。
aviUtlのH264出力は拡張x264出力(GUI)ではなく可変フレームレート出力で使用する素のもの。
コマンド実行プラグインでも良かったが、あれは内部の取り回しがまわりくどそうなので却下。
VFWでの出力は論外。
その他、AviUtlプラグインはここを参照。入力ファイル形式やNR加工など必要に応じて。
  1. まずはAviUtlを展開。
  2. 同じ場所にx264出力プラグインの x264out.ini , x264out.auo , toolsフォルダ を配置。
  3. toolsフォルダ内のx264.exeを最新のもので置き換える。
  4. tsMuxeR.exe をAviUtlのtoolsフォルダ内に配置。
  5. multiAVCHDのtoolsフォルダにあるeac3toフォルダをAviUtlのtoolsフォルダの中へコピー。
  6. x264out.iniをメモ帳などで編集。m2ts出力用テンプレートを追加する(以下)

!x264出力(CRF/BD)
set X264OPT=--crf 1 --weightp 0 --nal-hdr vbr --vbv-maxrate 50000 --vbv-bufsize 50000 --level 4.1
x264.exe "%X264OPT" -o "%TMPF%.264" %AVS%
avs2wav %AVS% "%TMPF%.wav"
%~dp2tools\eac3to\eac3to.exe "%TMPF%.wav" "%TMPF%.ac3" -little -16 -48000 -2 -resampleTo48000
del "%TMPF% - Log.txt" "%TMPF%.wav" "%OUT%.%EXT%"
echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr --vbv-len=500 > "%TMP%.meta.txt"
echo V_MPEG4/ISO/AVC, "%TMPF%.264", fps=24, insertSEI,constSPS >> "%TMPF%.meta.txt"
echo A_AC3, "%TMPF%.ac3" >> "%TMPF%.meta.txt"
tsMuxeR.exe "%TMPF%.meta.txt" "%OUT%.m2ts"
del "%TMPF%.log" "%TMPF%.ac3" "%TMPF%.264" "%TMPF%.meta.txt"
exit

AviUtlで[プラグイン出力]→[x264出力(mp4/mkv)]を選択、
[ビデオ圧縮]の[テンプレート]で追加した[x264出力(CRF/BD)]を選択して出力する。
アスペクト比などの設定は無視してm2tsを出力している。
ファイルパスには日本語を使用しない事。(後で換えてもOK)
作成したm2tsをmultiAVCHDに放り込んで[START]、Blu-rayを指定して出力する。
DIGAではメニューを再生できなかったので(PowerDVDでは再生できた)
[Create top menu]等のチェックを外し[Skip top menu playback]にチェックを入れている。
ImgBurnのところをチェックしておけば完了時に連携してくれる。
あとは出来上がったBDMV , CERTIFICATE (とHDAVCTN) のフォルダをImgBurnで焼く。
注意としては UDF 2.5 で焼く事。BD-REメディアで試すと良い。

テンプレートのeac3to、tsMuxeRのパラメータはソースにより変更の必要があるかもしれない。
また、x264のオプションは好みで追加/変更する。2passでもかまわない。ちなみに
--sar 1:1 --crf 18 --preset veryslow --me umh --tune grain --weightp 0 --bflames 2 --ref 3 --nal-hdr vbr --vbv-maxrate 38000 --vbv-bufsize 73000 --level 4.1 --keyint 240 --min-keyint 1 --mvrange 511 --b-pyramid strict --slice 4 --aud --colorprim bt709 --transfer bt709 --colormatrix bt709 --threads auto --thread-input --ssim

こんなかんじで、あとはcrfだけ場合に応じて調整している。



【編集しない場合】

H264なMP4ファイルが元であれば、MUXし直すだけ。なので、以下のようなbatファイルを
作成し、まとめてドラッグ&ドロップすれば一括変換できる。(たぶん)

set TMPF=0
:LOOP
cd /d "%~dp1"
set /a TMPF=%TMPF% + 1
if %TMPF% lss 10000 set TMPF=0%TMPF%
if %TMPF% lss  1000 set TMPF=0%TMPF%
if %TMPF% lss   100 set TMPF=0%TMPF%
if %TMPF% lss    10 set TMPF=0%TMPF%
if exist %TMPF%.m2ts goto LOOP
copy /y "%~nx1" "%TMPF%.mp4"
set TRK=1
echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr --vbv-len=500 > "%TMPF%.meta.txt"
:DEMUX
MP4Box.exe "%TMPF%,mp4" -raw %TRK%
if not exist "%TMPF%_track%TRK%.aac" goto EAAC
faad.exe -o "%TMPF%_track%TRK%.wav" "%TMPF%_track%TRK%.aac"
eac3to.exe "%TMPF%_track%TRK%.wav" "%TMPF%_track%TRK%.ac3" -little -16 -48000 -2 -resampleTo48000
echo A_AC3, "%TMPF%_track%TRK%.ac3" >> "%TMPF%.meta.txt"
del "%TMPF% - Log.txt" "%TMPF%_track%TRK%.wav" "%TMPF%_track%TRK%.aac"
:EAAC
if not exist "%TMPF%_track%TRK%.h264" goto E264
echo V_MPEG4/ISO/AVC, "%TMPF%_track%TRK%.h264", fps=30, inserSEI, contSPS >>  "%TMPF%.meta.txt"
:E264
set /a TRK=%TRK% + 1
if %TRK% lss 2 goto DEMUX
tsMuxeR.exe  "%TMPF%.meta.txt"  "%TMPF%.m2ts"
del "%TMPF%.mp4" "%TMPF%.meta.txt"  %TMPF%_track1.*   %TMPF%_track2.* 
shift
if not "%~1" == "" goto LOOP

exeのパスは環境に応じて変更のこと。
MP4Box.exeはx264出力プラグインに、eac3to.exe,faad.exeはmultiAVCHDにある。
日本語ファイル名回避の為に、連番ファイルを作成するようにしている。
できあがったm2tsをmultiAVCHD と ImgBurn で焼くのはAviUtlでのやり方に同じ。


余談:
じつは、tsMuxeRでもBlu-ray形式の出力ができる。複数ファイルの場合、連結させるように
指定するのだが、できあがったものが再生できない。1本の長いTSを作成する際、連結部分が
うまく作成できていないようだ。(最初だけ再生できて2つめからが不可になる)
その点、multiAVCHDはTS結合せずにチャプターで複数ファイルをうまいことやっている。
そのmultiAVCHD、色々なファイル形式を入力できるので元ファイルを放り込めるのだが、これも
出来上がったものがDIGAで再生できない。BDと形式が合わない場合、内部でtsへ変換をしており、
これがうまくいっていないようだ。なのでtsをあらかじめ用意し、内部変換させないようにする。
ts化はVLC使うのが一番楽なのだが、これもNG。そもそも、VLCの変換機能自体あやしい。

開く コメント(0)

全1ページ

[1]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事