ニコニコ動画の動画をP-01A向けに変換

| コメント(0) | トラックバック(0)
以前までは、PSPにニコニコ動画を入れよう!(ふぉーみゅらわん&PSP裏情報)で紹介されてる方法で、ちょっと改造した携帯動画変換君を使って変換していましたが、マウスでいちいち操作するのが面倒になったので、自分で変換スクリプト書きました。

以前、上記記事を参考にしてWILLCOM03向け(縦方向で見たときに縮小されないサイズに合わせた)に変換していたが、そのままでは再生できなかったP-01A用にちょっと変えてみた。パラメータ類については、携帯動画変換君のP906i用設定を参考に変更。試した限りでは1パスで十分な画質だったのでそちらの設定を利用した。

convert_nicovideo.js

適当な作業用フォルダを用意し以下をコピー&ペースして拡張子「js」で保存。名前は適当で問題なし。

var fso = new ActiveXObject('Scripting.FileSystemObject');
var path = fso.GetParentFolderName(WScript.ScriptFullName);
var source_path = fso.BuildPath(path, 'sources');
var archive_path = fso.BuildPath(path, 'archives');
var output_path = fso.BuildPath(path, 'outputs');
var ffmpeg_path = fso.BuildPath(path, 'ffmpeg');

var files = fso.GetFolder(source_path).Files;
for(var file = new Enumerator(files); !file.atEnd(); file.moveNext()){
    var item = file.item();
    if(/^(.+)\.(?:flv|mp4|divx)$/.test(item.Name)){
        var in_file = item.Path;
        var out_file = fso.BuildPath(output_path, RegExp.$1);
        to_mp4(in_file, out_file + '.3gp');
        to_mp3(in_file, out_file + '.mp3');
        archive(in_file);
    }
}

function to_mp4(in_file, out_file){
    call_ffmpeg(
        '-y -i "' + in_file +'" ' +
        '-flags bitexact -vcodec xvid -s 640x480 -r 29.97 -b 1500k ' +
        '-acodec aac -ac 2 -ar 48000 -ab 128k ' +
        '-f 3gp "' + out_file + '"'
    );
}

function to_mp3(in_file, out_file){
    call_ffmpeg(
        '-y -i "' + in_file +'" ' +
        {
            flv: '-acodec copy ',
            mp4: '-acodec mp3 -ac 2 -ar 48000 -ab 128k '
        }[/...$/.exec(in_file)] +
        '"' + out_file + '"'
    );
}

function call_ffmpeg(param){
    var wshShell = new ActiveXObject('WScript.Shell');
    wshShell.Run('"' + ffmpeg_path + '" ' + param, 10, true);
}

function archive(in_file){
    var archive_file = fso.BuildPath(archive_path, fso.GetFileName(in_file));
    fso.MoveFile(in_file, archive_file);
}

なお、動画のアスペクト比が19:6の場合は、「640x480」を「640x360」とする必要がある。動画に合わせて毎回書き換えるのは面倒なので、各アスペクト比ごとに専用の変換スクリプトを用意した方がいい。

ffmpegの入手

参考にさせていただいたページと同じため引用。

Win32 Binariesをダウンロードして解凍して、

  • ffmpeg.exe
  • pthreadGC2.dll

の2つのファイルを、さっきの convert_nicovideo.js と同じフォルダに配置します。

ただし現在は上記ダウンロード先がリンク切れしているため、このあたりを参考に探すしかないかも?

空フォルダ作成

同じフォルダに、以下の空フォルダを作成。

  • sources
  • outputs
  • archives

使用方法

sourcesに動画ファイル(複数可)をコピーしてスクリプトを実行すると、何度かコマンドプロンプトが表示された後、outputsに変換後ファイル(3gp:動画、mp3:音声)が生成されるとともに、archivesに変換元動画ファイルが移動される。携帯での再生は、iモーションとしてmicroSDにコピーして行う(ファイルサイズが大きいのか携帯本体にはコピーできなかった)。

なお、スクリプトの設定と合っていないアスペクト比の動画ファイルがあると、変換時にアスペクト比が狂ってしまうので注意。後、僕は音声ファイルを使わないので、出力処理をコメントアウトしていてmp3の確認はしていない。

トラックバック(0)

トラックバックURL: http://orima.jp/mt/mt-tb.cgi/5444

コメントする

月別 アーカイブ

ウェブページ

Powered by Movable Type 6.0.3

このブログ記事について

このページは、orimaが2009年1月31日 14:01に書いたブログ記事です。

ひとつ前のブログ記事は「datalink使いづらい」です。

次のブログ記事は「エンコ職人か?」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。