6.17.2016

HLSにおけるfMP4サポート

WWDC2016の3日目、HLSにおけるMPEG-4 Frangmentのサポートが発表されました。

http://devstreaming.apple.com/videos/wwdc/2016/504m956dgg4hlw2uez9/504/504_whats_new_in_http_live_streaming.pdf

このセッションでは他にもIn-playlist timed metadataの採用やオフラインでのHLS再生(with Offline Fairplay Streaming)サポートなども発表されたけど、インパクトがあったのはやはりfMP4のサポート。ポイントは


  • 従来のMPEG-2 TS形式に加えてMPEG-4 Fragment形式をサポート
  • MPEG-2 TS形式でサポートしていた機能は(セグメント暗号化含め)含まれる


MPEG-4 Fragment形式にしてもmanifestファイルの書式は変更はありません。

MPEG-2 TS

fMP4


そして何より便利なのはメディア管理はmp4に一本化可能という点。HLS以外にMPEG-DASHで配信する場合も実質的にmanifestファイルだけ書き換えればいいので運用は圧倒的に楽になります。

HLSで独自の道を進んでいるという印象があるAppleですが、Microsoftと共に動画配信の効率化を目指してメディアストリーミング形式の“Common Media Application Format” (CMAF)をMPEGに提出して標準化手続きを進めてもいます。一方MicrosoftはEdgeでのHLSサポートをしており、NAB2016ではAzure Media ServicesにおいてFairPlayネイティブ実装が発表されました。他のブザウザにおいてもPlayer実装(※1)である程度カバー出来るのでコンシューマ向け配信を考えるとHLSだけでもどうにか出来なくもないですが、DRM問題含めMPEG-DASHでの配信需要も考えるとfMP4サポートによるMP4でのメディア管理一本化は非常に大きな一歩と言えます。

スマートフォン(タブレット)からの視聴比率が非常に高く、特に日本国内においてはiOSの比率が高いためHLSでの配信は欠かせません。また、Android端末(4.1以降)においてもHLS再生が可能なためモバイル端末向けにはHLSのみにしてしまうという判断はありえます。しかし、PC環境での再生を考えるとブラウザ実装とPlayer実装、双方の問題があるためにHLS一本化というわけにはいきません。そこでMPEG-DASHという選択肢が浮上してきます。

長年にわたる業界の怠慢によりいまだ消え去っていないFlashですが、先に発表があったGoogle Chrome、Microsoft Edgeに続き、WWDC2016でmacOS SierraにおいてSafariでのFlash Plug-inデフォルト停止が発表されました。この秋には主要ブラウザにおいて(デフォルトで)Flash動画が停止されます。
2016年秋のタイミングに向けて、動画配信形式とブラウザにおける再生環境はようやくFlashを葬り去る動きが本格化するでしょう。


 ※1)  HTTP Live Streaming JavaScript player(https://github.com/RReverser/mpegts

10.27.2015

2015 TB145

日本時間で2015年10月31日に地球付近を通過予定の小惑星「2015 TB145」.
光度変化予報を見てみると31日中に急増光して10等程度になり、そのまま急減光. このくらいの明るさなら小望遠鏡でも見えそうなのでパラメータをメモしておく.

*******************************************************************************
Initial FK5/J2000.0 heliocentric ecliptic osculating elements (au, days, deg.):
  EPOCH=  2457312.5 ! 2015-Oct-17.00 (TDB)         Residual RMS= .24963        
   EC= .8604230851451423   QR= .2947013160900233   TP= 2457368.1334227966      
   OM= 37.7324850393172    W=  121.5389590968189   IN= 39.68551435923526       
Asteroid physical parameters (km, seconds, rotational period in hours):        
   GM= n.a.                RAD= n.a.               ROTPER= n.a.                
   H= 19.8                 G= .150                 B-V= n.a.                   
                           ALBEDO= n.a.            STYP= n.a.                  
*******************************************************************************************************
 Date__(UT)__HR:MN     R.A._(ICRF/J2000.0)_DEC  APmag            delta      deldot    S-O-T /r    S-T-O
*******************************************************************************************************
$$SOE
 2015-Oct-31 00:00     04 46 15.79 +07 38 51.3  12.12 0.01464771175590 -34.0549755 143.2689 /L  36.2282
 2015-Oct-31 01:00     04 48 03.26 +08 16 55.6  12.00 0.01382940630830 -33.9471632 143.0114 /L  36.5105
 2015-Oct-31 02:00     04 50 04.63 +08 59 44.6  11.87 0.01301393822539 -33.8184502 142.7035 /L  36.8430
 2015-Oct-31 03:00     04 52 22.76 +09 48 13.2  11.74 0.01220187558638 -33.6631607 142.3327 /L  37.2380
 2015-Oct-31 04:00     04 55 01.34 +10 43 31.2  11.61 0.01139394588454 -33.4736050 141.8825 /L  37.7121
 2015-Oct-31 05:00     04 58 05.25 +11 47 07.6  11.46 0.01059109451344 -33.2391847 141.3307 /L  38.2875
 2015-Oct-31 06:00     05 01 40.97 +13 00 58.0  11.31 0.00979457010723 -32.9450183 140.6470 /L  38.9942
 2015-Oct-31 07:00     05 05 57.44 +14 27 33.8  11.15 0.00900605161457 -32.5697830 139.7899 /L  39.8739
 2015-Oct-31 08:00     05 11 07.14 +16 10 16.3  10.98 0.00822784156385 -32.0822619 138.7008 /L  40.9849
 2015-Oct-31 09:00     05 17 28.14 +18 13 35.4  10.81 0.00746316632152 -31.4357179 137.2965 /L  42.4103
 2015-Oct-31 10:00     05 25 27.44 +20 43 34.2  10.63 0.00671665187227 -30.5586223 135.4570 /L  44.2698
 2015-Oct-31 11:00     05 35 46.93 +23 48 18.2  10.45 0.00599508884891 -29.3394261 133.0084 /L  46.7372
 2015-Oct-31 12:00     05 49 34.60 +27 38 11.9  10.28 0.00530866511239 -27.6024697 129.6995 /L  50.0634
 2015-Oct-31 13:00     06 08 46.11 +32 25 08.8  10.13 0.00467289691439 -25.0745475 125.1784 /L  54.5999
 2015-Oct-31 14:00     06 36 46.61 +38 17 40.1  10.03 0.00411135813082 -21.3573507 118.9945 /L  60.7969
 2015-Oct-31 15:00     07 19 41.16 +45 04 40.8  10.03 0.00365839879576 -15.9749804 110.6992 /L  69.1024
 2015-Oct-31 16:00     08 26 39.76 +51 37 42.8  10.20 0.00335825217820  -8.6581671 100.1681 /L  79.6405
 2015-Oct-31 17:00     10 01 27.82 +55 18 45.1  10.60 0.00325348995984   0.0894639  88.1003 /L  91.7119
 2015-Oct-31 18:00     11 41 35.85 +53 55 10.5  11.23 0.00336241697178   8.8204591  76.0779 /L 103.7340
 2015-Oct-31 19:00     12 57 22.36 +48 49 44.2  12.03 0.00366602249334  16.1001805  65.6663 /L 114.1415
 2015-Oct-31 20:00     13 46 29.20 +42 49 28.3    13. 0.00412149450367  21.4454496  57.5313 /L 122.2688
 2015-Oct-31 21:00     14 18 10.92 +37 22 18.1    14. 0.00468473554509  25.1346467  51.5210 /L 128.2684
 2015-Oct-31 22:00     14 39 34.34 +32 50 03.8    14. 0.00532162947890  27.6437074  47.1699 /T 132.6060
 2015-Oct-31 23:00     14 54 44.25 +29 09 17.6    15. 0.00600879720256  29.3684201  44.0186 /T 135.7417
 2015-Nov-01 00:00     15 05 57.59 +26 10 32.7    16. 0.00673085594842  30.5796874  41.7109 /T 138.0318
$$EOE
*******************************************************************************************************

(JPL http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2015%20TB145;orb=1)

1.07.2015

RaspberryPiで定点カメラ -その1-

定点カメラって結構好きで、21世紀になるちょっと前からあちこちにカメラを設置しては各地の様子を眺めて楽しむってことをしてきた。隠し撮りとかじゃなく、風景とか、ね。そんなのも最近やってなかったんだけど、仕事で必要になったこともあり手元のRaspberry PiとArduino使って作ってみた備忘録。
 パーツリストは以下。


  • Raspberry Pi
  • Logicool HD Webcam C615
  • Arduino nano(サインスマートの互換品)
  • 人感センサモジュールSB612A
  • サーボモータGSWサーボMICRO/2BBM

定点カメラだけならRaspberry Piだけでもいいんだけど、各種センサー等は拡張性含めて別にしておきたかったのでこちらはArduinoで。カメラを振る

まずはRaspberry Piの設定。
使い慣れたBSD系にしようかと思ったけど、OSは以前書き込んだSDカードがあったのでとりあえずDebianで。
起動後、ネットワークの設定をしてパッケージとシステムをひと通りアップデート。

% sudo apt-get update
% sudo apt-get upgrade
% sudo rpi-update

ついでにロケールとタイムゾーンの設定(このあたりはraspi-configを使えばGUIでも出来るけど)。
ロケールは/etc/locale.genを編集して以下を実行。

% local-gen

デフォルトだとen_GB.UTF-8 UTF-8になってるので、これをコメントアウトして以下のコメントを削除。

en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8

タイムゾーンの方は日本国内で使うので、/etc/localetimeを一度消してシンボリックリンクを貼り直す。

% ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

これでとりあえずRaspberry Piのほうは動くようになったので、次はカメラを接続。
カメラを接続後以下を実行。

% lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0472:0065 Chicony Electronics Co., Ltd PFU-65 Keyboard [Chicony]
Bus 001 Device 005: ID 046d:082c Logitech, Inc.
Bus 001 Device 006: ID 0472:0065 Chicony Electronics Co., Ltd PFU-65 Keyboard [Chicony]

カメラの機種名が出てないけど、一応デバイスID005に認識されている模様。

% lsusb -v -s 005
Bus 001 Device 005: ID 046d:082c Logitech, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x046d Logitech, Inc.
  idProduct          0x082c
  bcdDevice            0.11
  iManufacturer           0
  iProduct                2
  iSerial                 1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength         2212
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
 ・・・・・・・・・・

Miscellaneous Deviceとか言われちゃってるけど、とりあえず使えそうなので次はmotionを入れる。

% sudo apt-get install motion

インストールが終わると/etc/motion/motion.confが出来るのでこちらを設定。
変更箇所は以下のとおり。

daemon off ---> daemon on
width 352 ---> width 640
height 288 ---> height 480
framerate 2 ---> framerate 24
webcam_motion off ---> webcam_motion on
webcam_maxrate 2 ---> webcam_maxrate 24

スナップショット保存とかの設定は後ほど。

% sudo service motion start

これで基本動作はOK。次はセンサ類と繋ぐ。






1.06.2015

争乱の未年

 日本国内の保守化、右傾化傾向が話題になることが多くなった。
 しかしこの傾向は日本だけのことではなく、世界の至るところで現れてきているようだ。
 特にEUでは複数の国においてその傾向が強く、EUからの離脱、EU自体の崩壊につながりかねない綱渡り状態が続いている。
 前世紀、植民地主義の結果起こった中東問題も未だ出口が見えず、宗教が人の心を弄んでいる。

 国境を自由に超えるインターネットというツールがインフラ化し、21世紀にもなって
国という概念自体捨て去れないだろうかという理想はある。しかし、むしろ時代は大きく揺り戻して民族主義や帝国主義が新たな形態へと進み始めているようだ。

 人は歴史を学ばない。歴史は繰り返す。
 確かにそのとおりなのかもしれない。

 人の歴史は争いの歴史。
 争乱の未年というジンクスは繰り返されるのだろうか。

11.27.2014

生命

生命の価値、生きる意味.
人はとかく、自らを特別なものと捉え、その存在に意味を見出そうとしがちだ. けれど、そんなことに大した意味はないのだろう.
宇宙の歴史において、たまたま生まれ、まだほんの一瞬ほどしか存在しておらず、この星の大気の外にさえ自由に出ることが出来ずにいるのが我々人類だ. この世界からすれば、存在しないに等しいし、数多存在する生命体のうちの一つに過ぎない.

それゆえ、僕は自らの物質的な命にはあまりこだわりがないし、未練もない.
けれど、もし肉体の枷を外し、精神的存在として生きることが出来るのであれば、数万、数億という時間を生きてみたい.
星を飛び越え、銀河を渡り、漆黒の時空を旅して、宇宙の、世界の終わりと始まりを見てみたい.


8.15.2014

命の系譜

人である限り、誰か、自分以外の人に出会うわけで、人との出会いと繋がりに先に、いまの自分がいる.



僕の父は、自分の父親に会ったことがない.
戦争が、親子が会う機会を奪ってしまったからだ.
まだ見ぬこの顔を想い、祖父は散っていった.

母子の2人で必死に生き抜いた祖母と父は、そんな戦争のことをあまり話すことがなかった. 
我が家の墓碑には、祖父の名だけでなく、戦争で亡くなった親族の名が刻まれている. 祖母が語りたくなかった、辛い記憶が刻まれている. 
そのすべてが、いまの僕につながる命の系譜だ. 

たった一人の命なんてない.
繋がりあって、いま、生きている.

7.16.2014

雷竜の国、そしてHappiness ③

 ブータン人、というかブータンに住むチベット系ブータン人の人たちは基本的に信心深い。ヒンドゥーの人たちなんかもそうだけど、身についた自然体の信仰心を持っているよ人が多い。そして、生き物が手を携えて生きていくトゥンパ・プンシの姿勢を随所で感じる。

親睦四瑞(トゥンパ・プンシ)
一切衆生悉有仏性の概念を持つ仏教信仰ゆえに、基本的に殺生をしないし、川で魚を釣ることは禁止されているブータン。だから魚や肉を全く食べないかというとそんなこともなくて、あれば食べる。そのあたりは仏教的緩さでもあるけれど、肉も海外で精肉されたものならOKだし、川魚だって下流のインドなどから輸入されていたりしている。けれど、ブータンの食事といえば基本はお米、チーズ、トウガラシの3本柱でほんど野菜だ。大地の恵みをご飯と共に食べる。
 そして、余ったご飯は犬や他の生き物にわける。大地で生きる命に分け隔てがない。

余ったご飯

 ブータンでは信心深い人たちが多いけど、信仰の根底に六道輪廻と転生の考え方があることもあって、祈りは個人的なことや現世のことに捧げない。生きとし生けるもの、そして来世のために祈る。輪廻、転生していく中で、すべての生き物は繋がっている。



 現世だけでない繋がりの中で、いまを、命を、幸せを捉え、祈るのだ。