概要
配信ツールをelectronを使えば簡単につくれるのでは?と思ってたのでtakcastというツールを作ってみました。
まぁ、こんな感じです。
動作するデモはこんな感じ
html5でもある程度動作します。
electronでの動作のスクリーンショットはこんな感じ。
必要なもの
node v7.10.0
npm 4.2.0
を使っています。
$ git clone git@github.com:taktod/takcast
$ cd takcast
$ npm install
$ npm run setup
$ npm test
これで起動できます。
rtmpはないのか?
という人には、別のpluginでrtmp出力ができるものを一応用意してありますので
takcastのディレクトリ内で
$ npm install --save taktod/takcast.output.rtmp
$ npm run setup
$ npm test
と実行してもらえれば、rtmp出力のpluginが入って配信できるようになるはずです。
目標
javascriptを使うことで、なるべく簡単にいろんな人が映像の動作に触れるようになればいいなと考えています。
なので、それぞれの動作をいくつかのpluginに分解してプログラム組んでみました。
いろんな人がforkしたり、pluginをつくって、機能拡張したりして楽しんでくれればうれしいなと思います。
ま、このプログラム自体は3月の終わりにつくったわけですが・・・
今回いじろうと思ったきっかけというか、今回やりたいこと
http://apiv2-doc.twitcasting.tv/#get-webm-url
ずばり、これです。
ツイキャスがwebmでの配信サポートしてるっぽいんですよね。
どうやらwebsocketでwebmのデータを投げてやれば、それで配信できるみたいです。
ということはサーバーをchromeやfirefoxだったら、ブラウザだけで配信ができるっぽい。
配信可能なことはわかっていて
http://qiita.com/taktod/items/24e59c4790ed8ac20cc1
こちらの記事にかきましたが、webmを受け取って解析してやれば、如何様にでも処理できるみたいです。
すばらしい・・・この方式が広まってくれれば・・・と思っています。
で、つくってみた結果
しくじりました。
githubのpageとしてアクセス可能にした初めのデモですが、httpsでアクセスできるところにあるため
wssでwebsocketを接続しないとだめみたいですね。
(前の記事のでも、よく考えたらwssでないと配信できませんね )
そしてテスト動作として自分が準備したgoのプログラムだとwsしかサポートしていない・・・
という点でしくじりました。
余裕があれば、golangのプログラムでhttpsをサポートしたサーバーを書くか、nodeでもつかってhttpsをサポートしたサーバー書くかしたいところですね。
一応この記事はその1としてみました。
https可能なサーバーでも書いたらその2とか書きたいです。
webm + websocketによる配信が広まったらいいな
と思ってます。