Raspberry PI から UStream 配信(H.264ハードエンコ)
以前のエントリでuserlandなアプリがビルド出来るようになったので、H.264エンコーダを使うraspividを改造して、UStreamに配信してみるお。
配信アプリの作成
- 配信アプリのコマンド(ttraspi)を新規作成。raspividのmain()関数をttraspiから呼び出す仕組み。
- raspividのソースを改造して、1フレームエンコードする度にコールバック関数を呼ばせる。また、H.264のエンコーダパラメータ初期値を少々いじる必要あり。
- ttraspi側のコールバックからRTMP配信用のAPI(自作)を呼んで配信させる。
キャプチャのサイズとかビットレートとかはraspividのコマンドラインオプションで設定出来るようになっているのでそのまま流用。
H.264コーデック
raspividのデフォルトではSPS/PPSが最初の1回しか出ない。
ファイル出力用だとそれで良いんだけど、ストリーミングの場合はI-Pic毎にSPS/PPSを出してやる必要があるので、そこら辺はコールバック側で最初のSPSたちを覚えておいて、I-Pic時に追加するように実装。
※ 後で分かったことですが、エンコーダの初期パラメータにフラグを立ててやるとちゃんとGOPごとにSPS/PPSが出るようです。
ただ、SPSのパラメータにアスペクト比が入ってなかったり、B-Picを有効にする方法がわからなかったり。。エンコーダ設定ではどうにも変えられなかったのでそこはBCM2835の仕様なのかも。
公開
ひっそり公開してみたお。
最初デフォルト(1920x1080 30fps)のまま配信しようとしたら全然絵が動かないんでビビった。↑のはVGA(640x480) 30fps 300kbps で配信。
CPU使用率が4%程度!さすがハードエンコですな。
フレームレートも良い感じでスムーズに動いてる。
文字レイヤも重ねて配信したいなぁ。。(続くかも)
SSLのサーバー証明書をVERIFYする(Windows)
例によって覚え書き。
前フリ
Windows上でOpenSSLを使ったクライアントアプリを作ったんだが、サーバーからもらった証明書をOpenSSLでVERIFYすると、X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY ってなエラーが出てしまう。
要するにOpenSSLでVERIFYする際にまともな証明書ストアを用意していないのが悪くて、ルート証明書の確認が出来ないよってことらしい。
アプローチとしては
のどちらか。前者は準備が面倒だし、おもしろくないので後者を採用。
本題
おもしろくないからっていう理由についてのツッコミはさておき、WindowsのCrypto APIの出番である。これ、めんどいんだよなー。
OpenSSLのリファレンスとかMSDNをちょろちょろ見ると、
- OpenSSLのSSL_CTX_set_cert_verify_callback()で自前VERIFY関数を登録。
- VERIFY関数に渡ってきたX509_STORE_CTXコンテキストを使って、i2d_X509()でサーバー証明書のバイナリデータ(DER)を抽出。
- CertCreateCertificateContext()でサーバー証明書を読み込む。
- CertGetCertificateChain()でサーバー証明書のチェインを列挙して、
- CertVerifyCertificateChainPolicy()でシステムの証明書ストアからVERIFY実行。
という流れ。1番目のi2d_X509()ってのはOpenSSLの関数。初めて使った。。
CertなにがしのAPIにいれる構造体がわけわからんのでうんざりしてたんだけど、Googleさんに聞いてみたら、でてきたよ。。→ 「Add peer certificate verification on windows」
なるほど。自己署名のはじき方ものってるな。よし。ってことで、完成!
Crypto APIはやっぱり面倒だった。
というお話でした。おわり。
raspberry pi 2周年
raspberry pi がリリースされて2周年だそうです。
http://jp.techcrunch.com/2014/03/03/20140301pi-is-two/
前々回あたりからuserlandのソースをいじってて、H.264エンコーダのパラメータがやけに質素なのでいじりたくて色々調べてたんですが、vcihq_なにがしまでしか追えなくて困ってたわけです。で、上の記事によると、
最初っからソースあらへんやんけ。
という事実に。
まぁ、上の記事のよればBroadcomからドライバソースが公開されるそうなのでそれがちゃんとRasPiにのってからまた確認するかなーと。
dqx ばくれつ終了。
ドラクエXです。
バージョン1.4アップデートでばくれつけんの威力がさがるそうです。
重宝してたのに。。
ということで、ばくれつ4人組でマリン狩ってきた。
みんな素手w
#素手でマリンは痛そうだとおもうのはじぶんだけだろうか。。
パッシブ上げるのに武器買うのもったいないなぁ。どうしようかなぁ。。
とか思う今日この頃。
ということで、アップデートまであと1日!
このページでは、株式会社スクウェア・エニックスを代表とする共同著作者が権利を所有する画像を利用しております。当該画像の転載・配布は禁止いたします。
(C)2012 ARMOR PROJECT/BIRD STUDIO/SQUARE ENIX All Rights Reserved.
がっかり。
花が枯れました。終了。
さすがに2晩放っとくと枯れるかーーーorz
このページでは、株式会社スクウェア・エニックスを代表とする共同著作者が権利を所有する画像を利用しております。当該画像の転載・配布は禁止いたします。
(C)2012 ARMOR PROJECT/BIRD STUDIO/SQUARE ENIX All Rights Reserved.
テレビの行方
いつものようにAVWatchをみてると、似たような記事が2つ。
接続率50%へ。異次元のネット接続提案を行なうパナソニック新VIERAの戦略
スマホ画面を24型液晶TVで。シャープ「スマホライフAQUOS」
まぁ前者は連載モノで、後者は新製品ニュースなので記事の趣旨が違うわけだが、PanasonicとSHARPの方向性の違いがおもしろいなーと思ったわけで。
テレビに付いてるネットワーク機能を使って何かしようというところまでは両社同じようなアプローチのはず。 大きく違うのは、Panasonicがインターネット上のコンテンツを取り入れようとしているのに対してSHARPはスマートホンのコンテンツと連携しようとしている(ようにみえる)点。
Panasonicのようなインターネットコンテンツとテレビの連携って、遙か昔から何度となく(パナだけじゃなく)繰り返しては失敗してきたという黒歴史があるのだが、今回は
テレビを付けたらテレビ全画面じゃなくてホーム画面が表示される
っていう、なんというか個人的には革命なんじゃないかと。
「テレビに、インターネットの機能をつけた」過去のモノは結局ユーザーから見た入り口が「テレビ」なわけで、インターネットの機能は後ろに隠れてて、しかも使うときもなんとなく「テレビに関係あること」にしか使わない(使えない)ような気がしたのだが、ホーム画面が最初に出てると「アレもコレもできるよ!なにする?」みたいな問いかけをされている感覚がある(ような気がする(気がするが多いな…))。
店頭に並んだらぜひ触ってみたいと久々に思ったのだ。
おわり。
あれ。SHARPわすれてたw
これね。結局のところ、
スマホの画面がテレビに映るよ!
っていうだけなんだけど、2画面で、しかもケーブル要らずってのがミソだと思うわけ。 2画面で片方にテレビ、もう片方に縦長のスマホを映して、そこにツイッタだの検索画面だのを出すと、、、あら不思議。さっきのパナと出来ることは一緒じゃん!てことに。
しかもSHARPさんのはUIをつくったり検索したりをスマホにやらせてるので、テレビ本体は(たぶん)そんなに特殊なハードもソフトも入って無くて、24インチで本体価格7万円という(比較的)低価格。
いやでも、パネルショボいだろ。これ。記事にも書いてるけどスマホより解像度低いってどうよw
なんか、「あるものを使ってうまいことやりやがったなw」的な印象が強い製品だと思う。
PanaもSHARPもやり方は違うけど、目指すところはテレビにネット付加価値を付ける、というよりユーザーにそのネット付加価値を使わせる、というところに注力しているように感じる。
単に商売としての付加価値で終わるのか、テレビの「進化」となって当たり前の機能になるのか、他社の動向も気になるところだ。
DQXイベント(お花見:後半)
すっかり忘れてました(´・ω・`)
スライムのイベント、今日までだったことに気がついて急いでスライム狩り。スライムハート集めに。
たしか「スライム族ならみんな落とすよ」ってカボチャのヒトが言ってた気がして、「ならマリン狩っときゃ一石二鳥じゃんw」とか思ってヴェリナードに行ってみたら、全くハート落とさない。。
なんか条件があったのかなぁ。。よくわからん。
とりあえず元気玉1個分消化して結局ガタラのベスちゃんを狩りに。
しかしこの時点で既に22:30をすぎて、目標のハート50個まであと40個くらい。
あかんやんw
しかしまぁ、なるようになるw
モガレキャンプにて見知らぬヒトとサイクロンw
残り10分で50個ゲットできました。よかったよかった。
このページでは、株式会社スクウェア・エニックスを代表とする共同著作者が権利を所有する画像を利用しております。当該画像の転載・配布は禁止いたします。
(C)2012 ARMOR PROJECT/BIRD STUDIO/SQUARE ENIX All Rights Reserved.