plasmasphere.net -プラズマスフィア ドットネット-

Diary

携帯動画変換君 最新ffmpeg用設定(PSP高画質用)

2011/02/17(Thu) 00:02

Veohやニコニコ動画のflv変換など、新しいffmpeg用に書き直した携帯動画変換君の設定を作りました。 PSPの高画質用です。

 [Info] Title=PSP高解像度設定:H.264 16:9 MP4(FFMPEG置き換え版)  [Item0] Title=PSP 720x480/画質A/1PASS/192kbps TitleE=PSP 1PASS/H.264 Deint/720x480/1500/192kbps Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -flags bitexact -vcodec libx264 -deinterlace -coder 1 -vlevel 13 -bufsize 128 -g 250 -s 720x480 -aspect 16:9 -b 1500k  -maxrate 1800 -acodec libfaac -ac 2 -ar 48000 -ab 384k -f psp -vol 256 "<%OutputFile%>.mp4"" Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 160x120 -an "<%OutputFile%>.jpg""  [Item2] Title=PSP 720x480/画質A/2PASS/192kbps TitleE=PSP 2PASS/H.264 Deint/720x480/1500/192kbps Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -pass 1 -passlogfile "<%OutputFile%>" -timestamp "<%TimeStamp%>" -flags bitexact -vcodec libx264 -deinterlace -coder 1 -vlevel 13 -bufsize 128 -g 250 -s 720x480 -b 1500k -maxrate 1800 -acodec libfaac -ac 2 -ar 48000 -ab 384k -f psp -vol 256 "<%OutputFile%>.mp4"" Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -pass 2 -passlogfile "<%OutputFile%>" -timestamp "<%TimeStamp%>" -flags bitexact -vcodec libx264 -deinterlace -coder 1 -vlevel 13 -bufsize 128 -g 250 -s 720x480 -b 1500k -maxrate 1800 -acodec libfaac -ac 2 -ar 48000 -ab 384k -f psp -vol 256 "<%OutputFile%>.mp4"" Command2="rm "<%OutputFile%>-0.log"" Command3=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 160x120 -an "<%OutputFile%>.jpg"" 

Transcoding_PSP.iniとかで、default_setting に保存してください。
PSPで再生できる最高のビットレート帯にしてますので、変換処理は遅いと思います。
ここまでいらねって人は、SPaRBさんで紹介してるファイル落とすと幸せになれるかもしれません。

出力したファイルは、メモリースティックのルートにあるVIDEOフォルダにつっこんだらOKです。
無い場合は作ったらOKです。


東京マルイ SIG552 EBRタイプストック

2011/02/14(Mon) 00:02

エアガンのSIG552にEBRタイプストックをつけてみました。
DSC01624%20%28Large%29.JPG

とっても素敵。
EBRタイプストックのつけ方はFirstのブログを参考に。
分解したの初めてでしたけど大したもんじゃなかったですはい。

他の装備は…
M3Xタイプ タクティカルイルミネーター ロング
GP-671B レイダー フォアグリップ
ELCAN SPECTOR DRタイプ X4スコープ
HKサプレッサー リアルタイプ

結構金かけてるんですが、家で的に向かって撃つだけですけどね。


ExtJS XmlReaderのcdata-sectionエスケープ対応

2011/02/06(Sun) 00:02

ExtJSのExt.data.XmlReaderですが、cdata-section の複数エスケープに対応していないみたいですね。
cdata-section のエスケープは基本以下の通りですが…

<HOGE><![CDATA[fuga]]></HOGE>

fugaをfuga]]>と入力すると、]]>をエスケープしないといけません。

<HOGE><![CDATA[fuga]]]]><![CDATA[>]]></HOGE>

※ cdata内で>とかを&gt;とエスケープするってのは大間違いです。

ExtJSのXmlReaderですが、値の取得に Ext.DomQuery.selectValue を使っています。
selectValue が cdata-section のエスケープに対応してないですね。


 selectValue : function(path, root, defaultValue){


 path = path.replace(trimRe, "");


 if(!valueCache[path]){



 valueCache[path] = Ext.DomQuery.compile(path, "select");


 }


 var n = valueCache[path](root), v;


 n = n[0] ? n[0] : n;


 if (typeof n.normalize == 'function') n.normalize();





  v = (n && n.firstChild ? n.firstChild.nodeValue : null);


 return ((v === null||v === undefined||v==='') ? defaultValue : v);

 }, 

一応 n.normalize で正規化されてると思いきや、cdata-section はnormalizeしても正規処理されないようで。
cdata-sectionがエスケープされていると、エスケープされてる数だけ childNodes に文字列が分割されます。そういうDOM仕様です。
なので、nodeValue だとこの場合取れる値は「hoge]]」です。

本来ほしい値は「hoge]]>」ですので、nodeValue ではなく contentText だと正解になるんですが、残念ながらIE系は DOM のバージョンが低いので contentText には対応していません。

なんにしろXmlReaderを書き換えてあげないといけません。

 Ext.override(Ext.data.XmlReader,{
 createAccessor : function(){

 var q = Ext.DomQuery;

 return function(key) {


 if (Ext.isFunction(key)) {



 return key;


 }


 switch(key) {



 case this.meta.totalProperty:




 return function(root, def){





 return q.selectNumber(key, root, def);




 };




 break;



 case this.meta.successProperty:




 return function(root, def) {





 var sv = q.selectValue(key, root, true);





 var success = sv !== false && sv !== 'false';





 return success;




 };




 break;



 default:




 return function(root, def) {





 var node = q.select(key, root, def), v = '';





 node = node[0] ? node[0] : node;





 if (typeof node.normalize == 'function') node.normalize();





 if(node.childNodes.length>0) {






 for(var i=0;i<node.childNodes[i];i++) {







 v += (node.childNodes[i] ? node.childNodes[i].nodeValue : '');






 }





 }





 return v;




 };




 break;


 }

 };
 }() }); 

Ext.DomQuery.selectValue を override した方が楽なのかもしれませんが。
なんにしろこれで cdata-section のエスケープに対応できたと思います。



© 1999- plasmasphere.net:SouiChi All rights reserved.