ImageFlux Live Streaming
さくらインターネットが提供、Pixivが開発したライブ配信サーバー
https://www.youtube.com/watch?v=q9xp2YDNUuU
配信側がWebRTC、視聴側がHLSに対応しなければいけない 配信クライアントのサンプルコードがドキュメントにあるのであまり心配しなくて良いかも
実際、ImageFluxのクイックスタートでは、SoraのJavascriptSDKを使ってアクセスしている
値段について
HLS配信の場合
配信する映像のビットレート、出力ストリーム本数、アダプティブビットレートの有無、同時接続数などにより異なります。
WebRTC配信の場合
同時接続数などにより異なります。
詳細な料金は、お問い合わせください。
---
チャンネル作成など、ImageFlux内のsoraを操作するのにWebAPIを利用する。
code:curl
ACCESS_TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXX"
curl -XPOST -H "Content-Type: application/json" -H "X-Sora-Target: ImageFlux_20180905.CreateChannel" -H "Authorization: Bearer ${ACCESS_TOKEN}" -d '
{
"hls": [
{
"durationSeconds": 1,
"startTimeOffset": -2,
"video": {
"width": 1280,
"height": 720,
"fps": 30,
"bps": 2000000
},
"audio": {
"bps": 96000
}
},
{
"durationSeconds": 1,
"startTimeOffset": -2,
"video": {
"width": 640,
"height": 360,
"fps": 30,
"bps": 500000
},
"audio": {
"bps": 96000
}
}
]
}
応答
code:json
{
"channel_id": "XXXXXXXXXXXXX....",
"sora_url": "wss://XXXXXXXX.imageflux.jp/signaling",
}
配信側はこれで手に入れた channel_idとsora_urlをSora SDKに渡してやる事で、Soraの理屈で配信が出来る。
視聴側は channel_idとsora_urlをSoraSDKに渡す事で、Soraの理屈で視聴出来、Web会議等の双方向通信が出来る。(上の例ではHLS向けチャンネル作成のリクエストだが)
また、playlist_urlをHLSプレイヤーに渡す事で、1対多配信の視聴が出来る。
APIの選択に、HTTPヘッダを利用してるのが独特
---
Android Logcat で採取したログ
code:error
2022/08/18 16:00:03.665 19328 19481 Info sora_signaling.cpp 005:00219481 (line 617): OnConnect url=wss://live-sora001.imageflux.jp/signaling 2022/08/18 16:00:03.665 19328 19481 Warn sora_signaling.cpp 005:00219481 (line 629): Failed Websocket handshake: asio.netdb:1 2022/08/18 16:00:03.665 19328 19481 Error sora_signaling.cpp 005:00219481 (line 1140): Failed to Disconnect: message=Failed Websocket handshake: last_ec=Host not found (authoritative) last_url=wss://live-sora001.imageflux.jp/signaling 2022/08/18 16:00:03.665 19328 19481 Info websocket.cpp 005:00219481 (line 92): Websocket::~Websocket this=7b2d1d30 2022/08/18 16:00:03.665 19328 19481 Info data_channel.cpp 005:00219481 (line 19): dtor DataChannel 2022/08/18 16:00:03.665 19328 19481 Info sora.cpp 005:00219481 (line 666): OnDisconnect: Failed Websocket handshake: last_ec=Host not found (authoritative) last_url=wss://live-sora001.imageflux.jp/signaling Failed Websocket handshake: last_ec=Host not found (authoritative) last_url=wss://live-sora001.imageflux.jp/signaling
多分キモはこれで、Hostが見えていないのが悪そう