JURIA @Wiki
@あれこれ-2006年8月
最終更新:
juria
-
view
ここは、
My Wiki
のミラーです。
[2006-08-31]
「お気に入り」のその後
しばらくの間、
urlをリストにしたテキスト
をエディタで開いて検索・リンクに飛んだりしてた
のだけど、やはりマウスクリックじゃなくてキーボード操作でリンクに飛びたくて。
のだけど、やはりマウスクリックじゃなくてキーボード操作でリンクに飛びたくて。
1.urlリスト(テキストファイル)を作成
一行にひとつのurlを記述
サイト名とか説明とかが必要なら行を分ける
一行にひとつのurlを記述
サイト名とか説明とかが必要なら行を分ける
MyWiki http://mywiki.jp/juria/juria-no/
2.
esText
の設定ファイル(デフォルトはesText.ini)
link.ini
link.ini
;;登録プログラムの設定 [exec] ;1行目がデフォルトプログラムになる。 [Space]で選択[Enter]で実行可 ;ブラウザ起動 path\Internet\Lunascape3\Luna.exe | &browser >"%M" path\Internet\w3m\usr\bin\w3m.exe | w&3m >"%M" ;エディタで表示テキストを開く ;システムの関連付け(notepadをsakuraと入れ替え済み) @system | &sakura path\xyzzy\xyzzycli.exe | &xyzzy ;クリップボードへ(行選択[Insert]で追加書き込み) ;MyWiki原稿用 @clip | clip &Wiki >[[:new|%M]] ;行未選択なら表示行全て @clip | clip&1 ""で囲みスペース区切り >"%M" ;行未選択ならファイル全体 @clipX | clip&2 選択行そのまま >"%T" %end
3.ランチャーなどからlink.ini と urlリスト(テキスト)を引数に esText を起動
esText.exe /#s=link.ini "path\list_sf.txt"
問題はリストの長さで、視認性が落ちるし選択するまでの道のりが遠い。
リストを複数ファイルに分割して < > で移動も可能だが、できれば @grep に
キーワードを登録、キーワードでタグを付て検索したい。そのためには、urlと
タグを一行にして、urlを抜き出してクリップボードへ、クリップボード内のurlを
引数にブラウザを起動、とかやらねばならんのね。ふ~む。
リストを複数ファイルに分割して < > で移動も可能だが、できれば @grep に
キーワードを登録、キーワードでタグを付て検索したい。そのためには、urlと
タグを一行にして、urlを抜き出してクリップボードへ、クリップボード内のurlを
引数にブラウザを起動、とかやらねばならんのね。ふ~む。
x264エンコードオプション
この↓設定、ソースにもよるだろうけど手元のMPEG2ソースでテストした結果では、
bframes(-b)を3にしてb_pyramid を指定しないのが、一番videoとaudioの時間差が
少なかったのでそうしてるだけ。画質や圧縮率にはあまり差が無い気がするし。
その他のBフレーム関連のオプションを弄っても、音ズレに影響してくるものは
見つけられなかったし。
bframes(-b)を3にしてb_pyramid を指定しないのが、一番videoとaudioの時間差が
少なかったのでそうしてるだけ。画質や圧縮率にはあまり差が無い気がするし。
その他のBフレーム関連のオプションを弄っても、音ズレに影響してくるものは
見つけられなかったし。
[2006-08-01]
(AVC-H264 + AAC).mkv
約一年前、h.264 エンコードテストした時(Juria's BBS Diary 参照)に比べ、
色々進化したみたいなので、TVを録画したビデオをとりあえず容量を節約して
(AVC-H264 + AAC).mkv にして取って置くことにした。録画したMPEG-2ソースは
スポーツ中継、中程度の画質。NTSC PC MPEG-2 640*480 3600kbps 29.97fps +
MPEG-1 レイヤII 44.1kHz 16bit stereo 224kbps
色々進化したみたいなので、TVを録画したビデオをとりあえず容量を節約して
(AVC-H264 + AAC).mkv にして取って置くことにした。録画したMPEG-2ソースは
スポーツ中継、中程度の画質。NTSC PC MPEG-2 640*480 3600kbps 29.97fps +
MPEG-1 レイヤII 44.1kHz 16bit stereo 224kbps
AVC-H264 + AAC の Matoroska(mkv)コンテナにするなら、
(1) Video は CLIエンコーダで rawストリームh264に、
(2) Audio は WAVEに出力後 aac にエンコード、
(3) raw.h264 と aac を mp4コンテナに入れてから、
(4) mkv に REMUX する
のがいいらしい。
(1) Video は CLIエンコーダで rawストリームh264に、
(2) Audio は WAVEに出力後 aac にエンコード、
(3) raw.h264 と aac を mp4コンテナに入れてから、
(4) mkv に REMUX する
のがいいらしい。
VFWではBフレームを正しく扱えないので、Bフレームを使うとフレームがずれる
とかなんとか。んじゃ、CLIならBフレーム使っても音ズレしないかって言うと
そうでもなくて、エンコード時やMUX時のフレームレートの指定にも色々ありそう。
ムニャムニャ。。。
とかなんとか。んじゃ、CLIならBフレーム使っても音ズレしないかって言うと
そうでもなくて、エンコード時やMUX時のフレームレートの指定にも色々ありそう。
ムニャムニャ。。。
とりあえず、それは置いといて、工程数をできるだけ省力化してみた。
■必要なツール
- DGMPGDec (DGIndex.exe + DGDecode.dll):MPEG-2ファイルを読み込む
DGDecode.dll は AviSynth2.5\plugins\ にコピー
- AviSynth v2.5 :動画を編集するためのスクリプト言語
- mpasource.dll 修正版:MPEG-1 Layer1/2/3音声をデコード
mpasource.dll は AviSynth2.5\plugins\ にコピー
- avs2wav.exe :AVS(AviSynthスクリプトファイル)からAudioDelay補正済みWAVEを出力
- waveflt2.exe :WAVE に各種フィルタをかける。ここでは neroAacEnc.exe に
pipeするために使う。(*1)
- NeroDigitalAudio (neroAacEnc.exe):WAVE を mp4aac にエンコード
- x264.exe :x264 CLIエンコーダ
- MP4Box :mp4 コンテナ作成
- MKVtoolnix (mkvmerge.exe):matroska(.mkv)コンテナ作成
- recycle.exe ~~
(*1) neroAacEnc が avs2wav が出力したWAVEを読み込めなかったので。
pipeすると、中間出力ファイルがひとつ減るし。
pipeすると、中間出力ファイルがひとつ減るし。
■準備
(1) DGIndex用AVS(AviSynthスクリプト)テンプレートファイルを作成
DelayAudio deinterlace, clop, resize など、ソースに合わせて数種類用意
しておき、(2)のバッチファイルも、DGIndexのコマンドラインのAVSファイルの
指定を変えたものを用意する。
(1) DGIndex用AVS(AviSynthスクリプト)テンプレートファイルを作成
DelayAudio deinterlace, clop, resize など、ソースに合わせて数種類用意
しておき、(2)のバッチファイルも、DGIndexのコマンドラインのAVSファイルの
指定を変えたものを用意する。
d2vTemplate_delay-026.avs
#### ソースのディレクトリ SourceDir = "E:\TV\" #### MPEG-2ファイルを開く ## DGIndexとDGDecode.dllを使用 ## [__vid__] がソースファイル名+拡張子(.d2v)に置換される DGDecode_mpeg2source(SourceDir + "__vid__") ## フレームレートを指定 AssumeFPS( 30000, 1001) #ConvertToYV12() # x264.exe が読めるのは YV12 # DGIndex で [YUV->RGB] を PC Scale出力した d2v は YV12 #### オーディオを読み込む [__aud__ ] がソースファイル名+ T01 DELAY xxms.mpa に置換される AudioDub(last, MPASource("__aud__")) ## 音声遅延設定 DelayAudio(-0.026) #### フィールドオーダー ## トップファースト #AssumeFrameBased().ComplementParity() #またはAssumeTFF() ## ボトムファースト AssumeFrameBased() #またはAssumeBFF() return last
(2) AVS→(AVC-H264 + AAC).mkv エンコードバッチファイルを作成
x264+aac_mkv.bat
ソースファイル名_日付.mkv が出来上がる。
size1:表示の都合によりコマンドラインの一部を改行しています:size
ソースファイル名_日付.mkv が出来上がる。
size1:表示の都合によりコマンドラインの一部を改行しています:size
@echo off echo. echo ######################################################## echo %~n1.mpg のエンコード Sample echo ######################################################## echo. echo.#### プロジェクトファイル(d2v + mpa + avs )を出力 #### echo. "path\DGIndex.exe" -IA=6 -FO=0 -OM=2 -TN=1 -YR=1 -IF=[%1] -OF=[%~dpn1] -AT=[path\d2vTemplate_delay-026.avs] -exit -HIDE rem -IA= iDCT Algorithm (1=MMX, 2=SSEMMX, 3=SSE2MMX, 4=64-bit Floating Point, rem 5=IEEE-1180 Reference, 6=Skal MMX, 7=Simple MMX) rem -FO= Field Operation (0=Honor Pulldown Flags, 1=Force Film, rem 2=Ignore Pulldown Flags) rem -OM= Output Method (0=None 1=Demux 2=Demux all 3=Decode) rem -TN= Track Number (カンマ区切りで列挙) rem -YR= YUV->RGB (1=PC Scale, 2=TV Scale) rem -IF= Input Files rem -OH= Output File 拡張子なし rem -AT=[AVS template file] echo. echo #### Audioエンコード ################################### echo. echo ## avs のソースファイルから WAVE を出力 echo. "path\avs2wav.exe" %~n1.avs echo. echo ## 出力した WAVE を mp4aac に (NeroDigitalAudio) (*2) echo ## waveflt2 を通して標準出力→ m4a rem ソースが48000Hzのときは -rsmp -dither 0 で44100Hzに rem ビットレートの変更 -bit16 echo. "path\waveflt2.exe" -pipeout "path\neroAacEnc.exe -cbr 96000 -lc -if - -of "%~n1_aac.m4a"" "%~n1.avs.wav" "out.wav" echo. echo #### Videoエンコード ################################### echo. echo ## rawストリームh264 にエンコード echo. rem ABR 700kbps 1pass(速度優先) "path\x264.exe" -I 300 -i 1 --scenecut 68 --bitrate 700 --bframes 3 --subme 6 --analyse p8x8,b8x8,i4x4,p4x4 --direct auto --cqmfile "path\matrix.cfg" --progress -o "%~n1.264" "%~n1.avs" rem ABR 700kbps 1pass(画質重視) rem "path\x264.exe" -I 300 -i 1 --scenecut 68 -b 3 -r 3 -B 700 -A p8x8, i4x4,p4x4,b8x8 --direct auto --cqmfile "path\matrix.cfg" --me umh -m 6 --b-rdo --no-fast-pskip --no-dct-decimate --progress -o "%~n1.264" "%~n1.avs" rem Quality-based VBR 1pass(画質 ソースによってcrfを調整) rem "path\x264.exe" -I 300 -i 1 --scenecut 68 --crf 25 --bframes 3 --subme 6 --analyse p8x8,b8x8,i4x4,p4x4 --direct auto --cqmfile "path\matrix.cfg" --progress -o "%~n1.264" "%~n1.avs" echo. echo #### mp4 mux ########################################### echo. echo ## video と audio をmp4にmuxする echo. "path\MP4Box.exe" -fps 29.970030 -add "%~n1.264" -add "%~n1_aac.m4a" "%~n1.mp4" echo. echo #### mkvにremux ######################################## echo. rem mp4は track1,aviは track0 rem タイムコード・アスペクトレート等の指定のときに注意 rem --timecodes 1:hoge_timecode.txt rem --display-dimensions 1:320x240 (displayサイズ指定の場合) "path\MKVtoolnix\mkvmerge.exe" -o "%~n1_%date:~0,4%%date:~5,2%%date:~8,2%.mkv" --aspect-ratio 1:4/3 -a 2 -d 1 -S "%~n1.mp4" --track-order 0:1,0:2 echo. echo ######################################################## echo %~n1.mpg のエンコード終了 echo ######################################################## echo. echo #### 一時ファイルをごみ箱へ ############################ echo. "path\recycle.exe" -y "%~n1.d2v" "path\recycle.exe" -y "%~n1 T01 DELAY -26ms.mpa" "path\recycle.exe" -y "%~n1 T01 DELAY -26ms.mpa.d2a" "path\recycle.exe" -y "%~n1.avs" "path\recycle.exe" -y "%~n1.avs.wav" "path\recycle.exe" -y "%~n1_aac.m4a" "path\recycle.exe" -y "%~n1.mp4" "path\recycle.exe" -y "%~n1.264" rem echo #### 一時ファイルを削除 ############################ rem del /p で確認あり rem del "%~n1.avs.wav" rem del "%~n1_aac.m4a" rem del "%~n1.mp4" rem del "%~n1.264" echo #### shutdown ########################################## echo 中止するには shutdown -A goto :shutdown echo. :shutdown echo. shutdown -s -t 30 -c "30秒後にシャットダウンします"
(*2) -lc オプションを付けても(extensionAudioObjectType: 5 (0x5)(0b00101)
HE-AAC sbr_present_flag: 0)、デコーダ、解析ソフトによっては HE-AACと
間違って解釈する。
HE-AAC sbr_present_flag: 0)、デコーダ、解析ソフトによっては HE-AACと
間違って解釈する。
■実行
バッチファイルをソースファイルと同じディレクトリに置いて、
バッチファイルをソースファイルと同じディレクトリに置いて、
- コマンドプロンプトから x264+aac_mkv.bat hoge.avs
- 「あふ」から&EACHコマンドでAVSを連続エンコード
&EACH -P "path\x264+aac_mkv.bat" $MF
過去ログ
@あれこれ-2006年1月 / @あれこれ-2006年2月 / @あれこれ-2006年3月 / @あれこれ-2006年4月
@あれこれ-2006年5月 / @あれこれ-2006年6月 / @あれこれ-2006年7月
@あれこれ-2006年5月 / @あれこれ-2006年6月 / @あれこれ-2006年7月
-