2018/02/21(水)Windows版 の Chrome でmp4 動画がまともに観れなくなった時の対処・・

弊社サイトの IPv6 対応作業を地道に進めていて、動作確認して気づいたのですが・・orz
つい最近まで Chrome でのサイト埋め込み mp4 動画が再生できていたのに、軒並みまともに再生しなくなってしまったようで、、
google が積年の恨みでも果たしたのだろうか・・(数年前から google が推進中の webm 形式動画普及攻勢・・・)

こうなってしまうようになったのです ↓
20180221_1.png
音声は出るが、映像が全く駄目、、、しかし、Firefox では特段問題がありません。
もしかして、前述のとおり google が chrome で問題が出るように何かやからしたのではないか、と勘繰り、webm 動画形式の対応状況をオンライン調査で再確認します。。

もう webm ≫ mp4 という感じなんですね。動画サイトの大御所 Youtube が webm 形式(VP8,VP9) を本格採用したことの影響が想像以上に大きいようです。

不具合を起こしている mp4 形式動画を webm 形式にエンコードして、アップロード。
動画を表示する部分の HTML を以下のようにしてみました:
<video  width="800" height="490" controls>
 <source src='20170427_15.webm' type='video/webm; codecs="vp8,vorbis"'>
 <source src='20170427_15.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
 <p>動画を再生するには、videoタグをサポートしたHTML5対応ブラウザが必要です。</p>
</video>


こうすることで、以下のように Chrome での動画再生が復活しました ↓
20180221_2.png
各所で言及されているとおり、同内容の動画であれば、ファイルサイズは mp4 形式より小さくなるようです。3割減は結構大きいですね。
20180221_3.png
ここで、avi 形式のファイルサイズが少し小さいのは、音声トラックが入っていないためです。
問題は、エンコードにエラく時間かかるところですね。
当方のPCでは概ね動画再生時間の3~4倍かかります。30分動画なら2時間弱かかってしまう。。。

〔2018/02/22 追記〕 Libre office の更新インストールと共に、Microsoft Visual C++ 2015 Redistributable(x64) - 14.0.24215.1 というものがインストールされたのですが、これで上記の不可解な現象は直った模様。。

2018/02/20(火)IPv6 の基礎(1) - ネットワーク機器類の取扱説明書を見る時、得意になれそうな知識

今回から不定期にIPv6基礎ネタを備忘録的に残していこうと考えています。
あくまでも「備忘録」です。はい。

筆者がかねてから想像していたとおり、今まで嗜んできたIPv4 とは毛色が違うし、似て似つかないものがあります。なので、初心者から「志を持って」(何のだ・・)猛勉強中です。

そんな中、各種のネットワーク機器を家電量販店やICT機器専門店などで買うときや、買った後で知っておくと、周囲に威張ることができそうな理解がしやすくなるような基礎知識を先ずはまとめていきます。

IPv4 は、軍事・学術研究から行き当たりばったりで進化してきた技術ですが、
IPv6 は最初から民生用途が意図されていて、万人共通の定義づけがいくつかあります。
ここがまず IPv4 と違う世界ですね。
IPv6基礎(1)
IPv6 の世界で先ず使われる用語の基礎用語として、以下があります:
■ ノード
 IPv6 通信機能を持った機器全てを指す。
 具体的には、パソコン、ネットワークプリンタ、ルータ、サーバを指し、ハブやスイッチングハブなどはノードに含みません。
 図示していませんが、スマートフォン、タブレットも「ノード」です。
 ノードは「ルータ」と「ホスト」の2つに区別されます。

■ リンク
 ハブやスイッチングハブ、無線LANアクセスポイントなどを介して、ルータ超えしないで直接イーサネットやWiFiで通信可能な装置間接続を指します。
 ルータ同士の通信も「リンク」です。
 ルータ超えの通信は「リンク」ではありません。

■ サイト
 1つ以上のリンクからなるLANを指します。
 ルータが複数あっても、インターネットに出ていかずに別のリンクと接続するLANは、接続ルータ先のリンクもまとめて「サイト」になります。
 ただ、この概念は古い IPv6 の資料には出てくるのですが、現在は使いません。
 古い IPv6 の資料を読むときに必要となります。

■ ルータ
 ノードのうち、リンク外部との通信中継・リンク内部通信の取りまとめを行う機器を指します。
 インターネット接続には不可欠な装置になります。

■ ホスト
 ノードのうち、ルータ以外の全ての機器を指します。
 受信時、自ホスト宛は処理できるが、他ホストへ転送出来ない機器全てがホストです。
 パソコン、ネットワークプリンタ、サーバ、スマートフォン、タブレットなどは、典型的なホストの一例です。
 リンク内でも他ホストへの送信は、基本的にルータが取りまとめて処理します。

■ 近隣ノード
 リンク内で通信が直接到達可能なノード全てを指します。

これらは概念として理解しておくと、後々 IPv6 の理解が楽になります。

2018/02/17(土)IPv6非対応回線に IPv6導入(6to4接続)

実は、弊社がメインで使用している回線は、ネイティブ IPv6 には非対応です。
# 正確には対応していたはずだが、ISP経営統合でそのあたりの対応が立ち消え状態・・・

よって、IPv4 で IPv6 を包み込んで通信する「トンネル接続」と一般的に称する手法を用います。
筆者はこの「トンネル接続」は嫌いなんですが・・・
通信自体が遅くなる上に、不安定要素を自ずと抱えるからです。どのくらい遅くなるのか、実験で示してみましょう。

先ずは、IPv6 ネイティブ接続(いわゆる IPoE 接続) 回線で通信到達時間を図ってみます。
20180217_1.png
最初の10回がトンネル接続回線への通信到達時間。これは若干速い方です。日本国内だからあたりまえか。。
次の10回は google IPv6回線 Webサーバなんですが、最初の10回よりも2倍速いです。
このサーバはどうやらオーストラリアに設置されているようです。
外国へ通信するほうが速い・・・orz

次に トンネル接続な回線からの通信到達時間計測。最初の10回は、互いに同じサーバ同士での実験です。
ほぼ同じ程度なのは当然の結果です。
次の10回は、ホスト名指定だと接続の度にIPアドレスが変わってしまうようなので、試験条件を同じにするために、IPアドレスを直接入力しています。
さすがに最初の10回と約2倍の差はありますが、IPv6 ネイティブ接続と比較すると、約3倍かかっている。。
20180217_2.png
単位はミリ秒(1000分の1秒)単位なので、大したことないだろと思う方居られるかもしれませんが、その考えは大きな間違いで、この差が積もり積もってそのまま体感アクセス速度の差になるのです。
やっぱりネイティブ接続が断然いいですね。。

2018/02/10(土)〔続き〕(自宅の)インターネットで IPv6 が使えるようになった。FreeBSD pfのNAT66 を採用・・

先日の続きです。
単純な構成なら、問題なく IPv6/IPv4 のデュアルスタックで動作するようなのですが、筆者のLAN環境は通常業務とシステム開発の両方を同時進行で行うため、歴史的経緯で以下のような変な構成になっています。(機器類はもっと数あるんですが、かなり端折って書いています)
20180210_1.png
「IPv6 の接続優先度を下げる」という事例は沢山ありますが、その逆は殆ど事例がありません。
何故なら、デュアルスタックにおけるデフォルトの挙動が『IPv6 優先』だからなのです。

当方のように「IPv4 接続がどうしても優先される(IPv6 でつながる場合もある)」という不可解な現象は、Windows10 においては、LANが複数あってインターネットへの接続ができる場合に特定のLANが優先的に選択され、選択されたLANが IPv4 しか通信できないと、見かけ上 IPv4 優先に見えるのではないか、という推測を立ててみたわけです。

具体的には「実験環境用ルータ兼サーバ」と記したサーバに NAT66 を設定することでほぼ解決しました。
'NAT66' とは IPv4 における NAT の IPv6 版といった感じです。
'NAT64' という機構もあるのですが、ここでは割愛します。

当該サーバのLANカード情報を以下に示します。
このサーバには、LANカードを2枚挿しし、相互に通信できるようにしていますが、
re1 → re0 への通信において NAT66 を設定しています。
20180210_2.png
①がプロバイダと接続する IPv6 アドレスで、このIPアドレスは今回使用しているプロバイダの提供機能上、半固定です。
何故「半固定」という謎仕様なのかは、最低限 IPv6 の基礎を理解する必要があるため、今は「そのようなものだ」と思っておいてください。

②が実験・製品開発業務用に使うLAN2のルータIPアドレスで、fdxx: で始まる「ユニークローカルユニキャストアドレス」というもので、IPv4 でいうところの「プライベートIPアドレス」に相当します。

/etc/rc.conf に以下のように設定します。(IPv6 関連のみ抜粋。この他に pf の設定も忘れないように。)
20180210_4.png
/etc/pf.rules (任意のファイル名で可能)には、下記のように設定します:
20180210_5.png これは、必要最低限の設定です。ぼかしてあるところは設定の必要ありません。

こうすることで、どちらでアクセスしても IPv6 で通信可能であれば、IPv6 が優先するはずです。再起動して再度、例のサイトでチェックしてみました。
20180210_3.png
このIPアドレスに見覚えないでしょうか?
この記事の2枚目の画像キャプチャ中で「①」と示したIPアドレスと一致します。
NAT66 が機能し、且つIPv6 アクセスが出来ていることが確認できました。

IPv6 接続を優先すると、「従来の IPv4 接続に時間かかるだろうが!」と思われる諸氏もいるかもしれませんが、それは、IPv6 でインターネット接続が出来ない環境での話。
筆者の環境は「IPv6 でインターネット接続が出来るようになった」ため、IPv4 接続が出来ない状態にならない限り、そういう現象には出くわさないです。

この数年、技術的記事ネタ切れ状態でしたが、暫く「IPv6の基礎」ネタで技術的な記事が書けそうです。(苦笑)