新しいものを表示

ここまで書いたのでついでに。

動画配信者は、RTMPで動画をFediMovieインスタンスに配送します。動画のストリーミング配送プロトコルですね。

インスタンス側ではffmpegがこの受信側を担っており、HLSにトランスコードして、先程のような小間切れのTSファイルとその一覧のm3u8ファイルを吐き出しています。

ブラウザでこれを受け取って再生するコンポーネントがVideo.jsで、HLSによるストリーミング再生を実現しています。

スレッドを表示

このあいだのP2Pの実例。

いま、S.H.さんがやってるHALOのキャンペーン攻略のライブ動画配信を、
fedimovie.com/w/hcYWdEstnw3aPD

4視聴者が閲覧していて、2人がP2P(WebTorrent)に参加しています。

不参加の2人は、インスタンスから77MBを直接受け取っています。

参加している1人(私)は、添付画像のように、インスタンスから43MB、ピアから33MBというような割合で受け取っています。

また、他のピアに向けて36MBのデータを受け渡しています。

もう一人のピアの内訳はわかりませんが、概ね逆算できるハズです。

このように、たった2人のピアの参加ですら、インスタンスにかかる負荷を軽減する効果があります。

なお、通常の動画はオブジェクトストレージに移動し、そちらからデータを流していますが、ライブの場合はインスタンスのストレージから直接配送します。

小間切れの.tsファイルがあって、その一覧を.m3u8で渡してます。4秒ずつで、1分ちょっと保持してる感じかな。この小間切れを、インスタンスかピアから受け取っているわけです。

スレッドを表示

正しい組み合わせを線でつなごう

補足でちょっと画像つけとくね。

P2Pに参加する(ピアになる)かどうかは、自分の設定と、あと再生する時に画面下部に確認がでます。

ユーザーに断りなく行わないようになっています。

少しでもリスクを減らしたい場合や、帯域に余裕がない(転送量課金対象になっているなど)場合は参加しない方が良いです。

他方、参加することで再生が安定する場合もあるわけです。

何をしているのか理解した上で、活用してください。

スレッドを表示

PeerTubeはファイル容量の大きい動画をホストするサービスということもあり、連合によって投稿を配送する際も、動画そのものを複製しません。

自身のコンテンツを管理しやすいプラットフォームです。

ここでは、動画を投稿したサーバをオリジンインスタンスと呼びます。

他のサーバの動画を再生する場合は、オリジンインスタンスの持っている動画データを直接参照します。

ただ、そのままだと人気のある動画をホストした場合に、みんなのアクセスが集中し、オリジンインスタンスに非常に高い負荷がかかります。

そこで、P2Pとミラーリングで負荷分散する仕組みがあります。

P2Pは、動画を同時視聴しているユーザー同士でデータをシェアしあうことで、オリジンインスタンスの負荷を軽くする仕組みです。

ブラウザ同士で通信しあう時にお互いのIPが割れるということがあるため、自分のブラウザをデータ提供に参加させるかどうかは任意です。

WebTorrentによって、WebRTCで動画データ(フラグメント)を融通しあいます。

参加しているブラウザはピアと呼ばれます。

の動画のシェアについて

動画のURLを投稿に貼ると、リンクになります。

Mastodonでは、Mastodonのプレビューカードという仕組みと、WebのoEmbedという仕組みの組みあわせで、埋め込みプレイヤーが表示されます。

ただし、埋め込みプレイヤーが表示されるのは、投稿を認識してから1〜2分経ったあととなります。

これは、たとえば私の1,525人のフォロワーに配送された際、それぞれの所属サーバで動画に対して埋め込みプレイヤーの取得処理がほぼ同時に発生してしまうため、わざと遅延処理をランダムに入れて、処理を分散させていることによるものです。

もうひとつ、動画のURLを検索欄に入力すると、動画そのものが投稿の一つとしてみえます。

これは動画投稿そのものであるため、これにお気に入りすると、動画の高評価がカウントアップされます!

また、既存のコメントがリプライとしてぶら下がっていて、Mastodon側からリプライでコメントを追加することができます。

この、投稿として動画を認識するのが、ActivityPub対応している動画サービスの醍醐味といえます。

のアカウントとチャンネルについて。

添付のスクリーンショットをみてください。

まず、のえる@FediMovie、noellabo3というのが、私のアカウントになります。

下の二つ『のえるチャンネル』と『のえる@デレステCh』が、私のチャンネルになります。

チャンネルをMastodonやMisskeyからフォローすると、そのチャンネルの新着動画が配送されてくるようになります。

アカウントではなく、チャンネル単位でフォローするのが基本です。

なお、FediMovieなどPeerTubeで登録できるのはチャンネルのみです。

各チャンネルのページにアカウント名と、アカウント名のコピーボタンがあります。ここを押すと、noellabo_ch@fedimovie.comという文字列がコピーされます。

これを、MastodonやMisskeyの検索欄に入力するとアカウントが出てくるので、ここからフォローすることができます。

添付画像はFedibirdのもので、チャンネルはグループとして認識されています。一般のMastodonでは普通のアカウントのように見えます。

基本はカッターナイフであるが、まあこういうのにも便利よね、というヤツ

ウチの子(ノイズキャンセリングついてるワイヤレスBluetoothイヤホン)

室内の雑音を打ち消してくれるので、無音のままつけてても便利である。

夕方とか、おなかがすいた時にですね、ガッツリいってしまいたくなるんですが、まあこのへんで手を打とう、という食品があるといいのです。

こちらはブランのドーナツ。比較的あっさりしているがぎゅっとつまった感じもあり、なかなかのドーナツである。ブランっぽさはあまりない。美味しい。そしてお腹に満足。良き。

映えないし美味しそうでもないですが、いつぞや焼いて朝食代わりに食べてたホットケーキ 🥞

ブーストまとめてやると、このぐらいはジョブ走ったりするんですが、

これまでは何秒かは待機中積み上がったんですが、いまびくともしなくなってますね。Sidekiqの画面を並べて観察しようと思ってたんだけど、涼しげでまったく面白くない……。

スレッドを表示

ライブ配信機能、復帰して再び使えるようになりました。

また、通信を暗号化したRTMPSを選択できるようになりました。

なお、FediMovieでは、PeerTubeの標準機能に加え、チャットプラグインによる配信中のチャットにも対応しています。(有効にするかどうかは配信者が選択できます)

今回発生していたFediMovieの障害の件、全面的に解決しました。

2022年1月11日 0:33〜2022年1月12日 2:55まで、Vultr東京リージョン(おそらくベアメタルサーバの一部)のIPv4接続ができない障害が発生しました。

添付画像は、本件に関するVultrのメンテナンス告知の通知です。

FediMovieでは、IPv6での疎通には問題がないことを確認できたため、別のプロキシサーバを経由するルートにより11日朝に動画の閲覧まで仮復旧、夜にアップロードの最終処理であるオブジェクトストレージへのデータ転送を回復させる措置を行いました。

----

なおこの間に、PeerTubeのdevelopブランチへの追従と、オブジェクトストレージへのAPIアクセスのプロキシサーバ対応をコードに反映しました。

細かな修正の反映などありますが、一番はUIの日本語化が進んだところが一番に目に付くかと思います。

スレッドを表示
古いものを表示
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。