コグノスケ


link 未来から過去へ表示(*)
link 過去から未来へ表示

link もっと前
   2022年 10月 2日 ---> 2022年 9月 23日
link もっと後

2022年 10月 2日

ニコニコ動画の動画は 2種類ある

だいぶ周回遅れですが、リコリス・リコイルの最終回を見てました。最終回に限らず銃撃アクションはどの回も良かったな〜と思います。設定はイマイチ良くわからないですけど、あまり気にしても仕方ないです。それはさておき。ニコニコ動画は、

  • 無料版: 期間限定公開
  • 有料版(d アニメ支店)

があって、有料版はちょっと変わってるらしいので、試しに契約してみました。サブスクリプション方式でした、月額 440円だそうです。

ニコニコ動画の動画配信方式の概要

現在のニコニコ動画の配信方式は HLS(HTTP Live Streaming, 規格は RFC8216 にて規定)といいまして、MPEG2-TS ファイルを細かく(3〜10秒程度)分割して、クライアントから再生要求された位置から順に送るだけのシンプルな方式です。MPEG2-TS の弱点はインデックスなどの情報が一切なくてサーチが大変なことですが、あらかじめ分割しているため苦労してサーチをする必要がありません。

ちなみにリコリス・リコイルの無料放送版の場合、コーデックは見ての通りで Full HD じゃないです……。有料版でも HD 720p ですから、画質が気になる方にはイマイチかもしれません。他のアニメも同じなのでしょうか?調べていないのでわかりませんけど。

  • 動画: H.264 HD (1280x720)
  • 音声: AAC 48kHz

HLS では *.m3u8 というプレイリストも一緒に送られてきて、そこに TS ファイル名が全て載っています。プレイリストにある TS を順番にダウンロードし、単純連結するだけで動画全体の TS ファイルが引っこ抜けます。これはセキュリティホールとかではなく元々 HLS はこういう仕様です。

無料版と有料版の配信方式はちょっと違う

有料版も同様に HLS で配信されていますが AES-128-CBC 暗号化されていて、TS ファイルを引っこ抜いても再生できません。しかしなぜか無料版は暗号化されておらず TS ファイルを引っこ抜くと再生できてしまいます。設定ミス……?わざと?まあどっちでもいいですけど。


無料放送版に入っているニコニコ動画の透かし

キャプチャだとわかりにくいかもしれませんが、右下に「ニコニコ」という透かしが入っています。有料版は入っていません。

無料版と有料版は動画も違う

TS ファイルのサイズを比較(AES-128-CBC 暗号化でファイルサイズは変化しないので、この比較には意味がある)してみましょうか。使ったのはリコリス・リコイル最終話です。

  • 無料版: 377MB
  • 有料版: 296MB

有料版(d アニメ支店版)は 100MB くらい小さいです。無料版は先ほど説明したように右下に透かしを入れるために再エンコードしていると思いますが、再エンコードだけでは説明できないほどサイズが違います。なんで?と思って調べてみたら、どうやら、

  • 無料版: 30fps
  • 有料版: 24fps

になっているようです。オープニングのエレベータが降りていくシーンが非常にわかりやすいです。高速(120fps とか)で動画が撮れるカメラを使うと、無料版は 5コマに 1回、画が止まることがわかります。

有料版(24fps)が
1 2 3 4 5 6 7 8
という出方だとして、無料版(30fps)は
1 2 3 4 4 5 6 7 8 8
みたいな出方をします。

意図通りか間違えたか知りませんが、無料版だけ 30fpsに変換しているためファイルサイズがやたらデカいようです。暗号化もされていませんし、どちらかというと無料版の方が不思議な作りですね。

メモ: 技術系の話は Facebook から転記しておくことにした。色々と加筆修正。

編集者: すずき(更新: 2022年 10月 11日 02:49)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2022年 9月 30日

ゼルダのボム袋

ニンテンドーのポイントが期限切れになるぞよ、というメールが来ていたのでゼルダの伝説スカイウォードソードに出てくるボム袋を模した巾着をもらいました。思っていたよりでかい。


ゼルダの伝説、ボム袋風の巾着

ゼルダの伝説はほとんどやったことがなくて、家に届いた巾着を見ても何の模様かわからなかったのですが、奥さんに見せたら一発で「あ!ボム袋だ!」って気づいてました。ゲーム画面のキャプチャを観ると思っていたより再現度が高いです(ゲームのボム袋の方がもう少し背が低いくらい)。良いですね。

なぜかシューティングの練習で使うフロンガス缶のサイズと、この巾着のサイズが超ぴったりでした。フロンガス缶はそんなに種類があるわけじゃない(マルイ、レイラックス、サンダーシュート、ウッドランドがメジャーどころ?)し、同じ種類のガス缶を使っている人も多くて紛らわしいので、こういう個性的&コンパクトな袋はありがたいです。

メモ: 技術系?の話は Facebook から転記しておくことにした。色々と加筆修正。

編集者: すずき(更新: 2022年 10月 5日 18:44)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2022年 9月 23日

Windows PC の画面ロックを妨害(Windows API 版)

先日(2022年 9月 19日の日記参照)は JavaScript というか画面起動ロック API(Screen Wake Lock API)にて Windows PC の画面ロックを妨害する方法を紹介しました。

今回は Windows API(SetThreadExecutionState)を使って同様の機能を実現します。詳細は Microsoft の API ドキュメント(SetThreadExecutionState function (winbase.h) - Microsoft Learn)と、スリープに関する日本語の解説(システム スリープ条件 - Microsoft Learn)が参考になります。

そういえば Windows API のドキュメント、今は Microsoft Learn という名前になっていますね。昔は MSDN Online とか Microsoft Docs とか呼ばれてた気がしますが、統合されて消えてしまったのかな……?

さておきコードはこんな感じです。簡単すぎるのでわざわざ載せるまでもないですけども。

画面ロックを妨害(AWAY モード)するプログラム

#include <iostream>
#include <windows.h>
#include <winbase.h>

int main()
{
    EXECUTION_STATE r;

    r = SetThreadExecutionState(ES_CONTINUOUS | ES_AWAYMODE_REQUIRED);
    if (r == NULL) {
        std::cout << "failed!" << std::endl;
    }

    std::string hoge;

    std::cin >> hoge;

    return 0;
}

アプリケーション実行中に powercfg でチェックすると、こんな風になるはずです。なお powercfg を実行するには管理者権限でコマンドプロンプトを起動する必要があります。アプリケーション名は適当に読み替えてください。

作成したアプリケーション実行中の powercfg 実行結果
C:\Windows\system32>powercfg /requests
DISPLAY:
なし。

SYSTEM:
なし。

AWAYMODE:
[PROCESS] \Device\HarddiskVolume3\dat\projects\c\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe

実行:
なし。

PERFBOOST:
なし。

ACTIVELOCKSCREEN:
なし。

画面起動ロック API は DISPLAY というモードを要求していましたが、今回は AWAYMODE を要求しているので違うカテゴリに表示されています。もちろん API の引数を適切に変更すれば DISPLAY も要求できます。

他の利用者

画面ロックの妨害機能のユーザーは意外と多いです。前回挙げた PowerPoint の他に、Teams のような会議アプリケーション、メディアプレーヤーなども使っているようです。個人的に意外だったものとしてはセットアッププログラムです。

例えば、下記は Visual Studio のセットアップ中に powercfg を実行した結果です。

Visual Studio のセットアップ中の powercfg 実行結果
C:\Windows\system32>powercfg /requests
DISPLAY:
なし。

SYSTEM:
なし。

AWAYMODE:
なし。

実行:
[PROCESS] \Device\HarddiskVolume3\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe
Visual Studio インストーラー

PERFBOOST:
なし。

ACTIVELOCKSCREEN:
なし。

普通はセットアップ中にスリープされることなんて想定していませんから、セットアップがエラーになる可能性があります。不都合が起きなかったとしても、スリープ中はセットアップが進みません。と、考えると時間がかかるセットアップ中にスリープを妨害するのは筋が通ってますね。

編集者: すずき(更新: 2022年 9月 29日 11:22)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2022年 10月 2日 ---> 2022年 9月 23日
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 2/3 14:01

カレンダー

<2022>
<<<10>>>
------1
2345678
9101112131415
16171819202122
23242526272829
3031-----

最近のコメント 5件

  • link 23年01月06日
    すずき 「ありがとうございます。アップデートとかセ...」
    (更新:01/24 23:19)
  • link 23年01月06日
    カナやん 「あまり褒められた方法じゃないですが、Am...」
    (更新:01/24 21:37)
  • link 22年10月10日
    すずき 「ああー、懐かしいですね。いきなりWind...」
    (更新:10/12 00:51)
  • link 22年10月10日
    hdk 「いつ頃だったかのMicrosoft Of...」
    (更新:10/11 20:31)
  • link 22年09月19日
    すずき 「それもありますね。さらに調べていたら今回...」
    (更新:09/26 11:51)

最近の記事 3件

link もっとみる
  • link 06年08月07日
    すずき 「[timeBeginPeriod() API の挙動] 昔書いた記...」
    (更新:02/03 14:01)
  • link 07年11月20日
    すずき 「[あっというまに冬] 少し前まではいつ寒くなるんだろうと思っていた...」
    (更新:02/03 13:15)
  • link 22年12月22日
    すずき 「[x86 と ARM と RISC-V で CoreMark ] ...」
    (更新:02/03 13:04)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報