ブックマーク / tech.mirrativ.stream (15)

  • PerlからGoへのシステム移行のアシスト 〜Perl XSとUnix Domain Socketを活用〜 - Mirrativ Tech Blog

    こんにちは ハタ です。 Mirrativ では 2020年頃から サーバサイドの技術PerlからGoへのシステム移行 を行っており、2024年現在でもサグラダファミリアのように移行作業は継続しています PerlGoという2つの環境を同時に運用していますが、 基的には 新機能は Go で実装 し、 Perlでは積極的に新規実装を行わない というスタイルで進めていました しかし、既存の機能の一部に手を加えたいとなった場合、まだまだ Perl の実装に手を加えることが一定あり、Perl から Go の機能を呼び出したいというニーズが出てきました (配信やギフトといったビジネスの根幹を支えるレガシーな実装においては顕著) そこで PerlXS を利用することで Perl から Go を直接呼び出せるようにできないかと考え検証を進めることにしました Goの -buildmode=c-shar

    PerlからGoへのシステム移行のアシスト 〜Perl XSとUnix Domain Socketを活用〜 - Mirrativ Tech Blog
    havanap
    havanap 2024/04/25
    えげつない
  • Neural Audio Codec を用いた大規模配信文字起こしシステムの構築 - Mirrativ Tech Blog

    こんにちは ハタ です。 最近Mirrativ上に構築した配信の文字起こしシステムを紹介したいなと思います 音声からの文字起こしは、各社SaaSでAPI提供されているものがあると思いますが、今回紹介するものはセルフホスト型(自前のGPUマシンを使う)になります 構築していく上で色々試行錯誤したのでそれが紹介できればなと思っています どんなものを作ったか 前提知識: 配信基盤 前提知識: Unix Domain Socket Live Recorder Archiver DS Filter VAD Filter NAC / Compress Transcriber NAC / Decompress Speach To Text コンテナイメージ まとめ We are hiring! どんなものを作ったか 今回作ったものは Mirrativで配信されるすべての音声を対象に文字起こしを行う シス

    Neural Audio Codec を用いた大規模配信文字起こしシステムの構築 - Mirrativ Tech Blog
    havanap
    havanap 2024/04/11
    マニアックなことしてるなあ
  • ミラティブCTO交代の挨拶 - Mirrativ Tech Blog

    みなさまこんにちは、ちぎら @naru_jpn とよこて @n0mimono です。noteの方に対談を掲載していますが、テックブログのほうでも記事を書いてみようと思います。社内外の多くの方に読んでいただければ幸いです。 note.com prtimes.jp CTOを交代しました! 今のCTOより こんにちは、ミラティブ3代目CTOの千吉良(ちぎら)です。プレスリリースにあるように2024年1月よりCTOに就任しました、よろしくお願いいたします。 夏さん、横手さんと組織の中でCTOの移り変わりを眺めていて自分がその立場になるとは夢にも思わず生活をしていた訳ですが、せっかく挑戦する機会をいただいたのでお話を受けさせていただくことにしました。 私は2018年の8月からミラティブに副業ではじめて関わり、そのまま同年12月にミラティブに入社しました。 note.com インタビューにも書いたと思

    ミラティブCTO交代の挨拶 - Mirrativ Tech Blog
    havanap
    havanap 2024/01/24
  • UnityチームでGodot勉強会をしました - Mirrativ Tech Blog

    こんにちは、ミラティブ菅谷です。ミラティブではUnityチームで定期的に勉強会を行っています。今回はその取り組みの一つとして行ったGodot勉強会について紹介します。Unityエンジニアから見たGodotの特徴や触ってみての感想を記載しました。 背景:Unityライセンス体系の変更 2023年9月、Unityはライセンス体系の変更を発表しました。この変更は、多くのUnityユーザーに影響を与え、さまざまなゲームエンジンに関する議論を促しました。ミラティブのUnityチームもこの動きに注目し、ゲームエンジンの多様化に関する議論を行いました。最終的にライセンス体系は再変更されたため、ミラティブでもUnityからの移行は見送りとなりましたが、この話題をきっかけに他のゲームエンジンへの理解を深めることでUnityの長所と短所をより明確に把握することが必要であるとの結論に至りました。 Godot選択

    UnityチームでGodot勉強会をしました - Mirrativ Tech Blog
    havanap
    havanap 2024/01/11
  • Jetpack ComposeにおけるViewの多重タップ、複数同時タップの防止策 - Mirrativ Tech Blog

    こんにちは。ミラティブのAndroidエンジニアのかねき@kanesyです。 以前の記事でも何度か紹介していますが、MirrativのAndroidアプリでは新規で作る画面には積極的にJetpack Composeを活用しています。 tech.mirrativ.stream Jetpack Composeでの開発が活発になるにつれて、Viewの多重タップや、リスト中の複数アイテムの同時タップなどの想定外の挙動に向き合う必要が出てきました。 そこで今回は、MirrativのAndroidアプリで採用したJetpack ComposeにおけるViewの多重タップや、リスト中のアイテムの複数同時タップに対する取り組みについて紹介します。 Android Viewにおける多重タップ防止 Jetpack Composeでの実装の説明に移る前に、まずは既存のAndroid Viewにおける多重タップ防

    Jetpack ComposeにおけるViewの多重タップ、複数同時タップの防止策 - Mirrativ Tech Blog
    havanap
    havanap 2023/04/12
  • イヤホン配信を支える音のプログラミング入門 - Mirrativ Tech Blog

    こんにちわ。shogo4405です。エントリーは普段UI開発を行なっているクライアントエンジニア向けに、Mirrativのイヤホン配信を支えている音のプログラムの基礎を紹介していきたいといます。 音のプログラミングの概要を掴んでもらい、より詳しい部分については文献を調べるための参考になれば幸いです。 はじめに イヤホン配信の概要になります。Mirrativの配信はゲーム音源をマイクからの集音に頼っています。ユーザーが配信を行う際に、イヤホンを装着するとゲーム音源が配信にのらず視聴側としては物足りない配信になります。 これを解決する手段として、OS内部で再生中のゲーム音源をキャプチャーした音源。マイクから集音した音源。これらの音源を合成する方法があります。この手段をとることにより、イヤホンしながらでもゲーム音声を視聴者に届けることができるようになります。サービス上では、イヤホン配信と呼称し

    イヤホン配信を支える音のプログラミング入門 - Mirrativ Tech Blog
    havanap
    havanap 2022/12/13
  • iOS 16のロック画面映え機能を実装したい衝動に駆られた話 - Mirrativ Tech Blog

    ピクミンのスマホゲームに歩かされ続けている福山です(現在Lv51 - 合計歩数1,415,248) iOS 16で音楽や動画を流しているときにロック画面がいい感じになりましたよね! 正式名称はわかりませんが、ここに表示される画像はアルバムアートやアートワークなどと呼ばれているようです。 Mirrativ iOSアプリの配信視聴時もいい感じになっているはず... と思ったのですが、ただの灰色の画面になっていました😨 「なんとかしたいなぁ」と思い既存のコードとリソースをほんの少しいじった結果、以下のようになりました!Mirrativアプリv9.88.0から反映されています。 大画面で画像を表示したくない or 他の通知もすぐ見たいという場合には画像部分をタップすることでコンパクトに表示されます。 コントロールセンターの右上のブロックを押すことでも画像を見ることができます。 iPhone 14

    iOS 16のロック画面映え機能を実装したい衝動に駆られた話 - Mirrativ Tech Blog
    havanap
    havanap 2022/11/14
  • Raft + Redis な内製Redisサーバの紹介 - Mirrativ Tech Blog

    こんにちは ハタ です。 Mirrativのインフラ内で実際に開発・運用している内製のRedisサーバについてお話したいなと思っています。 前回の記事 は、今回紹介する内製Redisサーバで起きたメモリリーク対策に関するお話しとなっておりますので、もし未読であればあわせて読んでいただければと思います。 今回はなぜ Redis サーバを内製することにしたのかの経緯や実装についての簡単な紹介が出来たらなと思っています Redis 導入の経緯 課題感: 揮発しないでほしい 課題感: 生存時間が短いデータを保持したい 課題感: 日次データをなんとかしたい 候補 Redis Cluster のヨシアシ: slot 管理 Dynomite のヨシアシ: sharding/replication radisha = Raft + Redis + HA Raft クラスタ コマンドとデータストア レプリケ

    Raft + Redis な内製Redisサーバの紹介 - Mirrativ Tech Blog
    havanap
    havanap 2022/11/02
    こんなんよく内製するなあ
  • Go製ミドルウェアのメモリリークを解決した話 - Mirrativ Tech Blog

    インフラ・ストリーミングチームの id:udzura (@udzura)です。今回は、Goミドルウェアのメモリリークを見つけて解決する際に、どのようなプロセスを踏んでいったかを解説します。 Go製のミドルウェアの概要 ミラティブでは、Webアプリケーションのみならず、ミドルウェアに相当する部分についても必要なものは内製しています。その中の一つに、社内で「Radisha」と呼んでいる各種集計とキャッシュなどを行うためのミドルウェアがあります。Radishaは以下のような特徴を備えています。 GET、SET、SETEXなど基的なRedis互換のコマンドを実装している。そのため、既存のRedisクライアントライブラリから操作が可能である。 ランキング集計、一定時間内のアクセス集計などが行えるよう、Redis にない独自のコマンドを実装している。 高い可用性を志向しており、オンメモリのデータは

    Go製ミドルウェアのメモリリークを解決した話 - Mirrativ Tech Blog
    havanap
    havanap 2022/08/04
    defer, withなんとかのブロックスタイルのほうが親切だよなーと思っている
  • Apple のサンプルプロジェクトから Swift Concurrency 移行のエッセンスを学ぶ - Mirrativ Tech Blog

    こんにちは、クライアントエンジニアのちぎら(@_naru_jpn)です。AppleSwift Concurrency への移行をサポートするためのサンプルプロジェクト Updating an App to Use Swift Concurrency を公開しているのをご存知でしょうか。 このプロジェクトには、DispatchQueue を用いて記述されたアプリのコードと、それを Actor などの Swift Concurrency を使用したコードに書き換えたアプリのコードの 2 つが同梱されています。運用しているプロダクトのコードを書き換えるのは規模も大きく大変ですが、小さいプロジェクトから書き換えの課題感を掴んだり、ウォーミングアップとして Apple のサンプルプロジェクトから学べることがあるだろうという事から、このプロジェクトを題材にして社内勉強会を開催しました。 勉強会の

    Apple のサンプルプロジェクトから Swift Concurrency 移行のエッセンスを学ぶ - Mirrativ Tech Blog
    havanap
    havanap 2022/05/18
  • Unityの描画パイプラインをURPに移行しました - Mirrativ Tech Blog

    こんにちは、ミラティブUnityエンジニアの牧野です。 ミラティブアプリの3Dアバター(エモモ)の描画にはUnityを利用しており、その描画パイプラインをURPに移行した内容を紹介していきます。 はじめに URP (Universal Render Pipeline) とは以下のような特徴を持った、描画パイプラインの公式テンプレートです。 モバイル端末や家庭用ゲーム機、PCなど幅広いプラットフォームに最適化されている ShaderGraphやPost-processingなど、アーティスト向けのワークフローを提供している learning.unity3d.jp 移行前はビルトインレンダーパイプラインでしたが、以下のような理由でURPに移行ことにしました。 Unity体のバージョンと独立して管理できるため、体更新によって見た目が影響を受けるのを抑えられる 内部実装が確認でき、必要に応じて

    Unityの描画パイプラインをURPに移行しました - Mirrativ Tech Blog
    havanap
    havanap 2022/04/11
  • 1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog

    こんにちは ハタ です。 今回は以前iOSのクライアントサイドで実装していた通知ぼかし機能をサーバサイド(配信サーバ)上に再実装した事を書きたいなと思います 今回はかなり内容を絞りに絞ったのですが、長くなってしまいました、、 目次機能があったのでつけてみました、読み飛ばして読みやすくなった(?)かもしれません 目次 目次 通知ぼかし機能とは サーバサイド通知ぼかし プロトタイプの実装 苦労の始まり その1 画像処理速度 苦労の始まり その2 データ量 さらなる計算量の削減を求めて さらなる最適化へ Halide の世界へ 簡単な halide の紹介 苦労の始まり その3 いざ リリース リリースその後 We are hiring! 通知ぼかし機能とは 通知ぼかし機能は、ミラティブ上での配信中に写り込んでしまったiOSの通知ダイアログをダイアログの中身を見えないようにぼかし処理をしてあげる

    1ms 以下のリアルタイムオブジェクト検出/画像処理を目指して Goの配信サーバサイドで通知ぼかしを実装してみたこと - Mirrativ Tech Blog
    havanap
    havanap 2022/03/05
  • Goで開発した配信サーバーのメモリ使用量問題に向き合う - Mirrativ Tech Blog

    こんにちは。ストリーミングチームの松です。 Mirrativのストリーミングチームは、低遅延配信や、通知ぼかしというような機能を追加するため、配信のorigin serverの前段にtranscoder serverというものを導入してきました。 tech.mirrativ.stream tech.mirrativ.stream transcoder serverはGoによる内製のミドルウェアであり、主に映像の変換を行う目的で作られました。現在は配信プロトコルの変換(既存プロトコル -> 低遅延プロトコル)などを行っています。また、実際にはサーバー上のDockerコンテナ内で動作しています。 transcoder serverを展開していくにあたり、メモリ使用量が常に増え続ける問題が起きていたため、その際に直面したGoの実メモリ使用量に関する話を書きたいと思います。 メモリ使用量の増加問

    Goで開発した配信サーバーのメモリ使用量問題に向き合う - Mirrativ Tech Blog
    havanap
    havanap 2022/03/05
  • 社内勉強会「Swiftの並行処理についてのセッションを見る会」を開催しました - Mirrativ Tech Blog

    こんにちは、クライアントエンジニアのちぎら(@_naru_jpn)です。Swift 5.5 で async/await が導入されて久しいですが、皆さま導入はされているでしょうか。プロダクトに導入して活用できればいいですが、すぐには導入できないプロダクトも多くあると思いますし、個人でキャッチアップするにも、温度感の違いや人によってキャッチアップできる分量にも差が出てくると思います。今回は社内勉強会の一環として、 Apple が公開している Swift の並行処理についてのセッションを見る会をした話を書こうと思います。 セッションを見る会をはじめた理由 Swift の並行処理についての機能は、キャッチアップしている人とそうでない人が分かれると思っています。Swift の並行処理については多くの技術記事が書かれていますが、業務にすぐには直結しない内容について技術を吸収する為にはそれなりの気持ち

    社内勉強会「Swiftの並行処理についてのセッションを見る会」を開催しました - Mirrativ Tech Blog
    havanap
    havanap 2022/03/04
  • Mirrativ×Unity as a Library 活用事例と開発テクニック - Mirrativ Tech Blog

    こんにちは、Unityエンジニアの菅谷です。今回はUnity as a Libraryの活用事例と開発テクニックとして、以前のLTで紹介した内容をまとめました。Mirrativでの活用事例を通してUnity as a Libraryの強みや課題を共有し、他のプロダクトでの導入の参考になれば幸いです。2021/6〜2021/7にMirrativ×Unity as a Libraryのテーマで行った3のLTをまとめた内容となっています。 mirrativ.connpass.com meetup.unity3d.jp mirrativ.connpass.com MirrativにおけるUnity Mirrativにはエモモという配信をサポートする3Dアバターが存在します。ユーザーは衣装やアクセサリーなどのアイテムを組み合わせてエモモを着飾ることができます。MirrativはiOSはSwift

    Mirrativ×Unity as a Library 活用事例と開発テクニック - Mirrativ Tech Blog
    havanap
    havanap 2021/08/25
  • 1