• このエントリーをはてなブックマークに追加
配信ラグを100分の1秒まで正確に測定できる動画を公開しました
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

配信ラグを100分の1秒まで正確に測定できる動画を公開しました

2013-02-27 21:00
    XSplit や NLE でラグを確認したりするのに配信画面の経過時間を映していませんか?
    nicolive_timer_1.png

    これからはこの動画を NLE や XSplit などの配信ツールの画面上で再生するだけで正確なラグを調べたり、TAS や RTA、料理動画などいろんな動画で時間を測定することができます。さらに配信画面をキャプチャしないのでブラウザの位置を動かしたり、最小化しても時間 が隠れずに済むためデスクトップの狭いPCでは特に効果的です。



    コモンズで最適化した動画と AviUtl のプロジェクトファイルを公開しています
    ストップウォッチ 30分 低負荷版 - ニコニ・コモンズ

    動画の内容は30分間のカウントアップ動画です。100分の1秒単位まで表示でき、配信画面と XSplit や NLE をスクリーンショットツールなどで画面を一時的に停止することで100分の1秒単位までラグを調べることができます。スクリーンショットツールを使わない 場合はWinボタンとPrintScreenボタンを同時に押して、ペイントなどに貼り付けることでスクリーンショットが撮れます。

    私はこのスクリーンショットツール(インストール付き)を使っています : Lightscreen

    NLE の場合


    動画の再生開始ボタンを押すタイミングは配信開始と同時にすることで1枠30分の経過時間とほぼ一致します。動画の再生・停止や終了時の動作はその映像の上で右クリックし、メディアタブから設定出来ます。

    画像処理 再生・一時停止ボタン シークバーで再生位置を変えることもできます。
    nicolive_timer_3.png

    終了時の動作で最後まで再生してもループ再生ができます。延長枠などで続けてラグを調べる場合に再び再生ボタンを押す必要がありません。

    nicolive_timer_2.png

    正確なラグを計算するには XSplit や NLE などの配信ツールと配信画面の経過時間の秒以下の部分とを引き算します。上の画像の例では 5.14 - 2.19 = 2.95 (秒) が正確なラグになります。

    周りの黒い部分は NLE ではクロマキー合成で消すことができます。

    nicolive_timer_4.png

    方法はその映像の上で右クリックし、カラータブから選択出来ます。

    nicolive_timer_5.png

    クロマキー合成にチェックを入れ、RGBをチェック、彩度の T の値を 220 位にします。

    XSplit の場合


    XSplit も NLE と同様にその映像の上で右クリックし、カラータブから選択出来ます。
    nicolive_timer_7.png

    動画を編集するときにもこの動画を利用することもできます。先ほど紹介した動画でも作ることはできますが、より高画質な動画を使うこともできます。

    ストップウォッチ 30分 高画質版 - ニコニ・コモンズ

    高画質な動画である反面、AviUtl などで取り込む場合にはかなりPCパワーを必要とするので再エンコードするのをおすすめします。

    1.自分の好きなフォーマットにエンコードする
    2.おすすめの方法でエンコードする

    1. の場合は各自好きな方法で好きな部分だけをエンコードしてください。
    2. の場合は ffmpeg で utvideo 形式にエンコードします。ffmpeg は Zeranoe FFmpeg - Builds からOSのバージョンに合わせてStaticを保存します。ffmpeg は そのまま ffmpeg をダブルクリックしても起動できないので cmd.bat を使います。保存した cmd.zip を解凍して cmd.bat を実行し、下のコマンドをコピペします。ffmpeg の 7zip が解凍できない場合は 7-Zip を使って解凍します。インストールして使う方法とコマンドラインから使う方法の2種類があります。

      ダウンロード | 7-Zip
      インストール不要のZIP、7z、RARファイルの解凍方法 | 7-Zip

    必要なファイルは以下の3つ
    nicolive_timer_14.png

    基本コマンド
    nc67003.mp4 を入力し utvideo の映像エンコーダーを使い out.avi にエンコードするコマンド
    ffmpeg -i nc67003.mp4 -vcodec utvideo out.avi

    nicolive_timer_8.png

    エンコードが終わると容量は 800MB ほどになり、AviUtl で取り込むスピードやメモリ消費量が少なくなります。
    nicolive_timer_16.png

    上が可逆圧縮した動画の読み込みメモリ量、下がコモンズの高画質版の読み込みメモリ量です。

    最初から3分までしか必要ない場合は -t 秒 でエンコード終了秒を指定します
    この場合は開始0秒から180秒まで utvideo の映像エンコーダーを使って out.avi にエンコードするコマンド
    ffmpeg -i nc67003.mp4 -t 180 -vcodec utvideo out.avi

    追記 2014年3月27日
    -t 180 を入力ファイルの後ろに変更しました。

    AviUtl の場合


    AviUtl の拡張編集プラグインを使ってタイマーとして使う方法です。
    拡張編集プラグイン上に背景となる動画や画像を載せてそのタイムラインの下に out.avi を配置します。
    nicolive_timer_9.jpg

    合成モードで減算に指定すると周りの黒部分が透明になり、数字の部分が黒色に変わります。
    nicolive_timer_10.jpg

    その他に、加算、スクリーン、比較(明)合成は文字の色は変わらずに周りの黒枠が透明になります。差分合成は背景の色に合わせて数字の色が変わります。背景の色が頻繁に変わる場合にも時間の表示をしたい場合は差分合成にします。
    nicolive_timer_15.jpg

    それぞれの合成の処理についてはこちらの動画を御覧ください。


    エンコードによる遅延については ライブストリーミングにおけるx264の遅延(ラグ)とは を御覧ください。
    コメントを書く
    コメントをするには、
    ログインして下さい。