体重と今日食べたもの

k1segawa.exblog.jp

ダイエット

ブログトップ

HTML5ブラウザ動画再生 と AbemaTVの再生の違い (9/24)

普通YoutubeやHTML5プレーヤー(ニコニコ、amazon videoなど)による動画再生は、HTML5ブラウザがHTM5の動画再生機能を使って描画している。

【HTML5ブラウザ】
その際HTML5サポートしているブラウザによって、消費メモリ量(RAM)や通信速度によるバッファリングなどは各ブラウザの実装に依存する。
そしてそのブラウザが載っているOSによって消費メモリ量と描画範囲の大きさで、記憶媒体(メディア)であるHDDやSSD(Flash メモリ)へページング(オンメモリで処理できないデータを格納媒体へ一時的にキャッシュファイルとして格納しCPUの動作に必要なメモリ(RAM)を確保する)するかどうかや、ページング容量が決まる。

HTML5ブラウザの場合、ブラウザの使用するメモリ(RAM)量や通信速度の低下によって描画がカクカクになったりする。これは動画のフレーム作成が飛び飛びになるからで、メモリが潤沢にあればMAXでキープするGoogle Chromeブラウザのようにできるだけページングを避けて動くものや、Firefoxのようにタブごとに使用メモリが決まっていて描画はフレームを間引くことでCPU負荷を下げるものもある。

なのでHTML5ブラウザはそのメモリ使用量の差異で、代表的なブラウザであるChromeとFirefoxを使い分ける事ができる。
そして十分な通信速度があればフレーム作成が間に合うのでカクカクになることは少ない。

【AbemaTVの場合】
しかしAbemaTVは動画をサーバーで10秒程度のぶつ切りにして端末に送信し、ブラウザのキャッシュファイルとして格納させ、キャッシュファイルの連続再生で行っている。

それは、スマホなど頻繁に通信が切れる端末では、ブラウザのキャッシュにすればすぐには描画が途切れなくなるからで、キャッシュ再生中に通信が回復すれば端末はスムーズに再生されているようにみえるからである。

そのためそのシステムを使っている限り、PC上でAbemaTVはキャッシュファイルというHDDやSSD(Flash メモリ)などの記録メディアへ書き込みが頻繁に起きる。
なので書き込み(読み込み)速度が問題になる。

キャッシュファイルをRAMディスクに置けばAbemaTVはスムーズになるだろう。この手はPCにしか使えないが。

なので、キャッシュファイルを速度の低い記録メディアを使うとカクカクになる。これがAbemaTVが重い処理と思われる原因のひとつになる。キャッシュファイルなので描画範囲が大きければ画像(動画)が大きくなりそれだけキャッシュファイルも大きくなる。
そのため、AbemaTVでは全画面にすると重くなる。

HTML5ブラウザはブラウザが描画を拡大するので全画面でもページングの量は変わらず、使用メモリ(RAM)を多く使うことになるので、ブラウザがRAMディスクを使っているようなものなので全画面にしてもメモリがある限りは重くならない。

ただし、ChromeがMAXでメモリを使っていると、全画面切り替えや複数タブで重くなる。ここは各ブラウザの実装による。Firefoxではタブごとの使用メモリが決まっているので急に重くなることはない。最初から飛び飛びになってしまうか、そうでないかになる。

【中古1500円ノートPCでの使い分け】
このシリーズをずっとやっていると、メモリ(RAM)が1〜4GBなので、メモリが少ないことが多く、HTML5ブラウザで動画を再生するほうが軽い。逆に記録メディアに頻繁にアクセスするAbemaTVの方が重くなる。

普通のPCならAbemaTVのキャッシュファイルが作成されてもHTML5ブラウザがRAMメモリに置くので、どちらかと言うと通信速度の低下の影響のほうが大きい。

スマホのAbemaTVはそもそもサーバーから送ってくるデータが端末解像度や通信速度で最適になるようにサイズ圧縮されているのでキャッシュファイル自体それほど大きくなく、スマホの提供アプリは必要なメモリ(RAMキャッシュ)を抑えて少なくても十分だし、記録メディア(Flash メモリ)への書き込みもサイズが小さい分、処理は軽くなるように作られている。

なので、シリーズでやってる中古1500円ノートPCでは、通信環境の良いところでHTML5ブラウザでYoutubeやamazon vidoeを再生するのは全然可能。もちろんメモリ(RAM)は動画の高画質さや複数タブを開くことを考慮して決める必要はある。

逆にAbemaTVを中古1500円ノートPCで実行する場合は、キャッシュファイルの書き込み処理が重いので、RAMキャッシュを設定するか、描画範囲を抑え全画面にしないことが、通信速度やブラウザ種別、OS種別よりも重要。

【結論】
従って中古1500円ノートPC(CPUは低性能、RAMは少ない)では、

*****

Youtube/ニコニコ/amazon video:
CPU性能にもよるが高画質以外、全画面でも再生可能。

AbemaTV:
少ないRAMをキャッシュに設定できるブラウザやOSでないと全画面再生はカクカク。高画質配信動画ならなおさら。
なのでCPU性能がある程度あれば小ウィンドウサイズでの再生のみ可能。

*****

性能の良いCPUや潤沢なメモリのPCならそれを乗り越えて再生が可能。

動画再生といっても動画の仕組みがいろいろで、うまく再生されない場合、一口にこれという解決策はないな〜

P.S.
最初LinuxBean16で動かしていたが、AbemaTV(Chromium)もamazon video(Firefox + DRM)もカクカクだった。なので、OSをChrome OS(ユーザービルド32ビット版とNetwave社の法人ビルドcloudreadyフリー32ビット版)で動かそうとしてみた。
OSが軽くなったにも関わらずあまり変わらない。
途中でブート用Flash メモリとUSB無線LANアダプタをUSBハブ経由(セルフパワー・バスパワー両対応だったがUSB1.0だった)で差していたため、起動や通信の速度が出ないこと、ユーザービルド版が古くてPCの内蔵SDカードリーダーからブートしないこと、法人ビルドは起動するが、それでもOS負荷が減ったにも関わらず余り変わらないことで、元の通信環境かつSDカードリーダーに戻し、より早いUSB無線LANアダプタを使ってみたが、一向に速くならない。
しかしamazon videoは速くなった(全画面でも速度低下しない)ので、AbemaTVは純粋にCPU性能かFlash メモリ書き込み速度に依存するようだと気づき、それぞれの仕組みを考えた。USB HUBは2口しかないPCだったためだが、そもそもOS負荷でほとんど変わらないAbemaTVならChrome OSを使う意味がない。
なのでこれを備忘録しておいて変に凝るのを辞めようと、記事にしたわけだ。
まあ、法人ビルドのcloudready32ビット版はサポート対象が公開PDFに明記されているので、他の中古PCでまったく動かなくて、役に立たなかった不出来な子かと思ったが、この未サポートFuturePCで動いて少しは役に立つことがわかっただけでも、良しとしよう。ユーザービルド版も初回起動時のみ不明のVGAデバイスと認識するがその後きちんと描画され、そのドライバ認識状態で再起動するとVGAドライバが不一致なため起動時画面が乱れるなどの現象でログインできないなど、色々Chrome OS 32ビット版についての知見も得た。
まだブートChrome OSからのインストールやUSB 2.0、直近のユーザービルド版での確認、メモリ(RAM)の増量などが残っているが、このOSの32ビット版にも少し可能性が残されている。

ユーザービルドのChrome OSと法人ビルドのcloudreadyでは[設定][ストレージ管理]で、使用可能容量(オフラインで消えないChrome OSの持つ利点)が12GBと7GBと違うことにも気づいた。なぜなんだろう?2GB→4GBにRAM増設すると使用可能容量が2GB→7GBに増えたのも数値も含めて謎だ。

[PR]
by k1segawa | 2018-09-24 16:36 | パソコン | Comments(0)