2011年8月20日土曜日

黒部ダム

大雨警報が発令され黒部川で孤立者の救助が行われる中,黒部ダムまで突撃!
その甲斐あって自分的にはノープランの旅久々の Hit(笑)

いつものように GPS ログだけ.

大きな地図で見る

2011年8月8日月曜日

MediaPlayerClassic + AviSynth で 1.5 倍再生

PS3 には 1.5倍再生機能があって便利なので,PC でもやってみた.

でも x倍再生機能がある動画プレイヤーは他の機能がしょぼかったりしたので,普段使っている MediaPlayerClassic (MPC) + AviSynth でやってみた.MPC には最初から avs スクリプト再生機能があるので,1.5倍再生スクリプトを書いて MPC に読ませるだけで ok.スクリプトはこんな感じ.
Scale1 = 3
Scale2 = 2
DirectShowSource( "hoge.ts", pixel_type="YUY2", convertfps=true )
AssumeScaledFPS( Scale1, Scale2 )
TimeStretch( tempo = Scale1 * 100.0 / Scale2 )
convertfps=true は VFR を CFR に変換するために必須.
AssumeScaledFPS で映像の再生速度を 1.5倍にして,TimeStretch で (音程は変えずに) 音声の再生速度を変える.

これで完璧ヘ(^∇^ヘ)ヘ(^∇^ヘ) ウヒョヒョ と思っていたら,なんか映像と音声がずれる.どうも convertfps=true をつけると映像の冒頭がなぜか切り捨てられることがあって,その分の音声がずれるらしい.DirectShowSource はいろんなフォーマットの動画が読み込めて便利なんだけど,ちょっと変わったことをしようとするととたんに音声がずれて使い勝手が悪い.

というわけで他の方法を模索.FFmpegSource というプラグインがあったので,それを使ってみた.
Scale1 = 3
Scale2 = 2
FFmpegSource2( "hoge.ts", atrack=-1, cachefile="hoge.ts.ffindex", fpsnum=30000, fpsden=1001 ).ConvertToYUY2
AssumeScaledFPS( Scale1, Scale2 )
TimeStretch( tempo = Scale1 * 100.0 / Scale2 )
FFmpegSource は ffmpeg という知ってる人は知ってる有名な動画エンコーダの動画リード部分を流用しているだけあって,安定性は抜群.これで音ズレなくまともに 1.5倍再生ができるようになった.
ただし問題がひとつあって,FFmpegSource は動画ファイル毎にインデックスファイルを作成してからでないと再生が始まらない.1時間の番組で 30秒ほどかかることもあるので,この間待ちぼうけを食らうのも辛い.

なので,まず通常速度で再生する MPC を起動しつつ裏でインデックスを作成して,作成が終わったら改めて 1.5倍再生する MPC を起動するバッチファイルを組んだ.FFmpegSource のパッケージにインデックスを作成するコマンドラインプログラムが付属しているので,それを使う.
バッチファイル (正確には WinBatchEh のスクリプトだけど) はこんな感じ.
: 変数セット
set TmpDir=%temp%\mpc_playlist
set Player="C:\Program Files\MediaPlayerClassic\mplayerc.exe" /fixedsize 860,550
set FileName=%1

: tmp ファイルフォルダ作成
if Exist %TmpDir%\ del /y %TmpDir%\*
mkdir %TmpDir%

: .avs 作成
set FileNameOrg=%FileName%
StrTokFile=STF_NAME FileName "%FileName%"
set FileName=%TmpDir%\%FileName%.avs

echo Scale1 = 3> "%FileName%"
echo Scale2 = 2>> "%FileName%"
echo FFmpegSource2( "%FileNameOrg%", atrack=-1, cachefile="%FileName%.ffindex", fpsnum=30000, fpsden=1001 ).ConvertToYUY2>> "%FileName%"
echo AssumeScaledFPS( Scale1, Scale2 )>> "%FileName%"
echo TimeStretch( tempo = Scale1 * 100.0 / Scale2 )>> "%FileName%"

: とりあえず普通再生の画面を起動
start %Player% "%FileNameOrg%"

: index を作成,1個出来たら mpc 起動
exec=SW_HIDE "C:\Program Files\AviSynth 2.5\plugins\ffmsindex.exe" -p "%%a" "%FileName%.ffindex"
start %Player% "%FileName%"
途中まで再生された後,また MPC が立ち上がって最初から再生されちゃうけど,まぁ手でシークすればいいし許容範囲内かな.
-----
WSH の javascript で書いたものを置いときます
SFC mini も入れといてください.

2011年8月4日木曜日

PhenomII X6 ゲット

AMD PhenomII X6 1065T を購入.

そろそろ AMD のソケットが変更されて,今の AM3 ソケット CPU は生産中止になるらしいので.いま買い換えとけば後 3年は持つかなぁ? というわけで 6コア CPU ゲット.

今のマシンは 3年前に組んだものだけど,最新の CPU がマザボの変更無しでそのまま使えるって凄いことだなあ.しかもメモリの主流が DDR2→DDR3 に変わってるにもかかわらず.AMD はこういうところでもコストパフォーマンスが高いからインテルより気に入っている.

というわけで恒例のクロック & 電圧いじり.1065T は倍率変更でのオーバークロックはできない (倍率を下げる事しかできない) ので,やっぱ時代はエコだよねー,というわけでひたすら省電力方向に振ってみた.

で K10Stat の設定はこんな感じ.
Athlon64 の時は 1GHz/0.800V が下限だったけど,今度のは 100MHz まで下げられるwww 流石にそこまで下げちゃうとモッサリ感が半端ないので,下限は 400MHz にした.あと,各 PState 毎のクロック割り振りを低めにして,なるべく低い周波数で動くようにしてみた.

で,6コアをしばらく使ってみたけど,今までの 2コアと体感は全く変わらねー(笑) 今までですでにオーバースペックだったってことね.唯一実感できたのは動画のエンコが 3倍速くなったことだけだな.