PLAY DEVELOPERS BLOG

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

【入門編】いつかどこかで使えるかもしれない FFmpeg コマンドの紹介

みなさん、こんにちは。ソリューション技術部の叶です。 今回は、FFmpeg に関するテックブログをお届けします。 PLAY の開発において、動画ファイルは、とても重要な役割を果たしています。私は日々、FFmpeg で生成した動画ファイルを使い、開発や検証をして…

字幕の不具合で WebKit にバグレポートを出した顛末記

こんにちは、クラウド推進技術部開発第1グループの石川です。 フルスタックエンジニアとして、システムプログラミングからWebプログラミングまで幅広く手を出していますが、最近は機械学習が加わりました! 生成AIや、画像認識、超解像などのモデルも組める…

Pulumi AIでAWS Media Servicesを使用したライブ配信環境は作成できるのか?

こんにちは。プラットフォーム技術部開発第2グループの村井です。 最近ではAWS CDKやTerraformなどのInfrastructure as Code(IaC)ツールを使ってインフラをコードで管理することも珍しくないですよね。 今回はIaCツールの一つ、Pulumiのコードを今流行りの…

視聴動向データの分析基盤を Redshift から Snowflake に乗り換えた話

こんにちは、SaaS プロダクト開発部テックリードの丸山です。さて今回は、少し前の話にはなりますが、昨年実施した視聴動向データの分析基盤のリニューアルプロジェクトについてご紹介したいと思います。視聴動向データとは、誰が、いつ、どこで、どの動画を…

Amazon GuardDutyとAmazon Inspector:AWSセキュリティにおける継続的な監視と診断

プラットフォーム技術部のアーロンです。AWSのセキュリティサービスであるGuardDutyとInspectorについて紹介します。 これらのサービスは、AWS環境におけるセキュリティの監視と評価を支援するための強力なツールです。GuardDutyは、マルウェアの検出、不審…

弊社テックブログのリニューアルについて

ソリューション技術部 デザイングループでデザイナーをしている山本です。 今年の4月に他業界から転職し、社内で飛び交う聞き覚えのない単語にもやや慣れてきたかな?と感じているところです。 私の所属するPLAYのデザイングループは、社内外を問わずデザイ…

Amazon SESで学ぶメールのBounce(バウンス)とComplaint(苦情)

AWS

ソリューション技術部の杉嵜です。BMIが18.5付近で反復横跳びしています。 今回の題材はAWSのAmazon Simple Email Service(SES)で、その中でもバウンス(Bounce)と苦情(Complaint)について取り扱います。Amazon SESを利用することでメール送信に関する構…

GitHub Actionsを使ってプルリクエスト作成時に自動でRubocop + RSpecを実行する

こんにちは。LOGICAプロダクトグループの松本です。 GitHub Actionsを使ってlintツール"Rubocop"と単体テスト"RSpec"を実行する方法を紹介します。 概要 背景 GitHub Actionsとは 解説 name on jobs runs-on services uses: actions/checkout@v2 uses: ruby/…

MPEG-DASHとMPDマニフェストの構造について

こんにちは、社会人になってから体重が10キロ程増えたので最近食事制限ダイエット始めました。 ソリューション技術部 (元OTTサービス事業部) の小渕です。 私は主にWebアプリのフロント開発を担っているのですが、Webの中でも特殊なHTML5に対応したテレビ (H…

SlackワークフロービルダーとGoogleスプレッドシート連携でデータ管理

皆さん、こんにちは。 この記事では、SlackワークフロービルダーとGoogleスプレッドシートを連携させる方法を詳細に解説します。これにより、スプレッドシートの情報をSlackで簡単に取得でき、情報共有の効率化が図れます。 Google Sheets for Workflow Buil…

NAB Show 2023 現地視察レポート:映像クリエイションの最先端とトレンド

こんにちは、プラットフォーム技術部開発第1グループの今雪とクラウド推進技術部第1グループの今坂です。 今年4月にラスベガスでNAB Show 2023というイベントが開催されましたが、PLAYからも今雪と今坂の2人が視察に行ってきました! 4/15に日本を出発し、4/…

React 対応 WYSIWYG エディタ Draft.js を試してみた

こんにちは。SaaSプロダクト開発部の千葉です。 今回は、最近試した「React 対応の WYSIWYG エディタで HTML 文字列を(class などの属性値を維持しながら)編集する」方法をまとめていきたいと思います。 WYSIWYG エディタとは React 対応 WYSIWYG エディタ…

フロントエンジニアなら知っておきたいトランスマックス入門

こんにちは、クラウド推進技術部開発第1グループの石川です。 突然ですが、トランスマックス (Transmux) とはなんでしょうか? 動画は内容を表すコーデック (H.264, H.265, mp3, AAC, ...) と、コーデックを多重化するコンテナ (MPEG-TS, fmp4, FLV, ...) で…

HLSマニフェストにおける主要なタグの意味と使い方

こんにちは、メディアプラットフォーム事業部 プラットフォーム技術部の新井です。 メディアプラットフォーム事業部から名前が変わり、プラットフォーム技術部になりました。過去のメディアプラットフォーム事業部の記事はこちらです。 developers.play.jp …

GitHub Copilot と Amazon CodeWhisperer の違いを比較:AIによるコード生成サービスの性能を検証する!

こんにちは。プラットフォーム技術部開発第2グループの髙嶋です。 最近、AIを使ったサービスが急に目立つようになってきました。 皆さんも何らかのAI系サービスを使ったことがあるのではないでしょうか。 今回はAI系サービスの中から、GitHub CopilotとAmazo…

AWSのランニングコストを削減しよう! EventBridgeを使った定期停止・起動について

ソリューション技術部の赤澤です。 普段はAWSでの環境構築などを担当しています。 環境構築にあたって、話題によくあがるのがコストについてです。 所謂本番/開発環境のような環境を運用している場合、 AWSは主にリソースの稼働時間に対してコストが掛かって…

プライベートNPMレジストリ Verdaccio について

ソリューション技術部の斎藤です。 弊社では、社内でNPMパッケージを管理するライブラリとしてVerdaccioを利用しています。 verdaccio.org Verdaccioは、無料でプライベートなNPMレジストリを作成できるNPMパッケージです。 ローカルのNPMレジストリ参照先を…

ALBの「アイドルタイムアウト」とステータスコード502,504の話

今回はAWS Application Load Balancer(ALB)の属性「アイドルタイムアウト」の話です。ターゲットサーバの動作や設定値によっては、意図しない「504 Gateway Timeout」や「502 Bad Gateway」を返す原因になりかねません。不要な500番台エラーを避けるためにも…

AWS 認定ソリューションアーキテクトアソシエイトの資格取得のためにやったこと

AWS

こんにちは、ソリューション技術部の松尾です。 最近AWS認定ソリューションアーキテクトアソシエイト(SAA)を取得しましたので、その勉強方法や取得したメリットについて記載できればと思います。 業務でAWSを使用することが多く、業務での活用や自分の中の知…

Amazon S3 レプリケーションを使用してバケット間で大量のオブジェクトをコピーする

こんにちは、OTTサービス事業部の冷牟田です。 私が以前対応した案件の中で、S3のレプリケーション機能を触る機会がありました。 調べると結構便利な機能だったため、そもそものS3の説明からレプリケーション利用時の手順までを簡単にご紹介させていただきま…

Android アプリ 難読化の落とし穴

こんにちは、OTTサービス事業部 プロフェッショナルサービス第1グループの上野です。 今年の4月で入社して10年になります。早いです。 Androidアプリを担当させて頂く事が多く、その時にハマりがちな難読化のお話について説明できればと思います。 難読化と…

社内システムの Node.js バージョン更新と依存パッケージの脆弱性対応を行いました

こんにちは、SaaS事業部の鐘川です。 しばらく使用されずに放置されていた社内システムが最近また必要になったので、そのシステムの一部であるReactを使用したフロントエンドアプリのNode.jsバージョンアップ対応を行いました。今回はその対応中に起こったエ…

あまり知られていない AWS S3 CLI の便利な使い方と注意すべきポイント 4 選

こんにちは、SaaS 事業部の髙橋と申します。 AWS のサービスのひとつにファイルをクラウド上に保存できる Amazon S3 というサービスがあります。この S3 は AWS CLI を使ってコンソール上で操作することもできます。今回は AWS CLI を使って S3 を操作する方…

動画広告挿入に関する基礎知識と IMA SDK の広告挿入制御について

こんにちは、SaaS事業部の森本です。 普段は再生プレイヤーの開発を行なっています。 この記事ではプレイヤーを再生するときに挿入される広告に関しての基礎知識と、広告挿入ライブラリであるIMA SDKの挿入制御についての調査結果を書いていきます。 広告挿…

AWS Step Functions を使用したワークフローのレイヤー分離と外部システム連携

こんにちは、メディアプラットフォーム事業部の尾古です。 最近 AWS が提供するアプリケーション統合サービスの1種である AWS Step Functions を利用する機会がありました。その際、処理の流れを機能単位にまとめて使い回し可能な形にしたい、自前の既存シス…

ULIZA のドキュメントを PDF から HTML に移植して全文検索できるようにした話(後編)

こんにちは、SaaS 事業部テックリードの丸山です。 私たち SaaS 事業部で取り扱っている商品のひとつに、動画配信プラットフォームの ULIZA があります。ULIZA は 2022 年 4 月に、ユーザーガイドや API 仕様書などのドキュメントを docs.p.uliza.jp にて一…

ULIZA のドキュメントを PDF から HTML に移植して全文検索できるようにした話(前編)

こんにちは、SaaS 事業部テックリードの丸山です。 私たち SaaS 事業部で取り扱っている商品のひとつに、動画配信プラットフォームの ULIZA があります。ULIZA は 2022 年 4 月に、ユーザーガイドや API 仕様書などのドキュメントを docs.p.uliza.jp にて一…

負荷試験ツール Artillery を使って秒間 1 万リクエスト以上の負荷をかける

こんにちは、メディアプラットフォーム事業部の今雪です。 前回のPLAY DEVELOPERS BLOGでは負荷試験ツールLocustを紹介しました。 今回は当社で併用している負荷試験ツールArtilleryについての紹介と環境構築、その使い方についてLocustと同じような流れで簡…

負荷試験ツール Locust を使って秒間 1 万リクエスト以上の負荷をかける

こんにちは、メディアプラットフォーム事業部の多保です。 当社は動画配信のプラットフォームを提供しており、 動画配信の開発プロセスにおいて避けて通れないのが負荷試験になります。 どのくらいの負荷に耐えうるアーキテクチャになっているか? 実装にな…

Finch: AWS 発のコンテナ開発用オープンソースクライアント

OTTサービス事業部の杉嵜 諒吾(すぎさき りょうあ)と申します。初見で読めない名前ですね。幼少期は電話で伝えるのが大変でしたが、IT技術の普及によりそんな苦労も無くなりました。 今回は、2022年11月にAWSから発表された Finch の紹介です。世のエンジ…