効率のよい同時ダウンロードの勧め | st2400のブログ

st2400のブログ

ブログの説明を入力します。

効率のよい同時ダウンロードの勧め

LIVEなどは、HLS配信のビットレートが50Kbps程度ですので、
1個だけのダウンロードは効率が悪く、LIVEでなくてもradiko.jp
のタイムフリーも同様です。速度は環境によって変化しますが、
私の環境では

・aac断片のURLを記述したxxxx.m3u8を直接ダウンロード
   --- 0.8 Mbps 同時接続可
・-headers オプションのffmpegによるダウンロード
   ---0.7 Mbps 同時接続可
尚、同時接続時は1.2Mbps

となっており、同時接続時は約1.5倍になっています。そこで、
同時ダウンロードのためのスクリプトの修正箇所を説明します。

 

といっても、簡単で、できるファイルの名前だけを変えて、あら
たなスクリプトにするだけです。

 

例えば、LIVEのBBCとNHKの場合は下記のようにスクリプトを
修正します。BBC-LIVE-smpl-download.js は
****************

 

var strUrl = "https://as-hls-ww-live.akamaized.net/pool_7/live/bbc_radio_three/bbc_radio_three.isml/bbc_radio_three-audio%3d48000.norewind.m3u8"
var wsh = new ActiveXObject("WScript.Shell");
var cmdtxt = "ffmpeg.exe -i " + strUrl + " -y -acodec copy output-BBC.aac";
wsh.run("smplayer-exec-BBC.js");
WScript.Echo( cmdtxt  );
wsh.run(cmdtxt,1,true);
WScript.Echo(String.fromCharCode(7));

 

************************

 

即ち、output-BBC.aacとできるファイルの名前を変え、起動するsmplayerのスクリプトもsmplayer-exec-BBC.jsと名前を変え

 

**********

 

Script.Sleep (10000);
var sh = new ActiveXObject( "WScript.Shell" );

var cmdtxt = "\"C:/Program Files/SMPlayer/smplayer.exe\"  \"C:/Users/st2411/Downloads/GyaoFlvDownloadHelper/output-BBC.aac\""
sh.Run( cmdtxt );
//  オブジェクトを解放
sh = null;

 

**************

 

ここでもoutput-BBC.aacとできるファイルの名前を変えます。
これで、このBBC-LIVE-smpl-download.js は独立したもの
となり、output-BBC.aacが、同時に行われる他のダウンロードに
上書きされることはありません。

このようにしてNHKも修正すると、BBCとNHKを同時にダウンロード
でるようになります。これはエアチェックなどではできない事です。
原理的には、いくつでも通信能力の範囲でできます。