本リポジトリは Bitmovin Encoder を用いたサンプルスクリプトを管理するためのリポジトリです。 Bitmovin Encoder は各クラウド環境(AWS、GCP、Azure)を用いてエンコードを行うため、入出力ファイル、クラウドリージョン、各種エンコード設定やマニフェスト設定を Bitmovin が提供する API (https://bitmovin.com/docs/encoding/api-reference) を用いて記述します。
また、API は REST API として提供されている一方、クライアント側で実装しやすいよう各種プログラミング言語で SDK(https://bitmovin.com/docs/encoding/sdks) も提供されています。本リポジトリでは Python 用の Bitmovin SDK を利用してエンコードを行う実装方法を示します。
- Python 2.7 もしくは Python 3.4 以降
-
pip コマンドを利用し、Python 用の Bitmovin SDK を取得します。Bitmovin エンコーダーに新しい機能が追加され、API に新しいエンドポイントやパラメータが追加された場合、SDK を更新しないと機能が利用できない場合があります。詳細な API の追加機能についてはリリースノートを参照ください。 (https://bitmovin.com/docs/encoding/changelogs/rest)
$ pip install git+https://github.com/bitmovin/bitmovin-api-sdk-python.git
-
有効な Bitmovin API key および Organization ID をスクリプトに設定します。API key は Bitmovin アカウントごとに発行され、スクリプトを実行すると Organization ID に紐づくサブスクリプションプランを消費してエンコードを行います。
API_KEY = '<INSERT YOUR API KEY>' ORG_ID = '<INSERT YOUR ORG ID>'
-
入出力ファイルが保存されている場所にアクセスするための情報、入力ファイルパス、出力先パスを指定します。例えば、S3 input / S3 output を行うスクリプトの場合、下記のような定義がスクリプト内に用意されているため、各入出力にアクセスするために必要な情報を設定します。設定が必要なパラメータはスクリプトごとに異なる場合があるため、詳細はスクリプト内の記述をご確認ください。
S3_INPUT_ACCESS_KEY = '<INSERT_YOUR_ACCESS_KEY>' S3_INPUT_SECRET_KEY = '<INSERT_YOUR_SECRET_KEY>' S3_INPUT_BUCKET_NAME = '<INSERT_YOUR_BUCKET_NAME>' S3_OUTPUT_ACCESS_KEY = '<INSERT_YOUR_ACCESS_KEY>' S3_OUTPUT_SECRET_KEY = '<INSERT_YOUR_SECRET_KEY>' S3_OUTPUT_BUCKET_NAME = '<INSERT_YOUR_BUCKET_NAME>' INPUT_PATH = '<INSERT_YOUR_INPUT_FILE_PATH>' OUTPUT_BASE_PATH = '<INSERT_YOUR_OUTPUT_FOLDER_PATH>'
各ディレクトリ配下には、Bitmovin Encoding API を使用してビデオをエンコードするためのサンプル実装が含まれています。主なサンプルには以下のものがあります。各スクリプトの詳細については、各スクリプト内のコメントを参照してください。
- pertitle: PerTitle エンコーディングを行うためのサンプルです。
- forensic-watermark: Forensic Watermarking を用いたエンコーディングを行うためのサンプルです。
- dolby: Dolby Vision、Dolby Atmos フォーマット出力のエンコードを行うためのサンプルです。
- hdr10: HDR10 フォーマット出力のエンコードを行うためのサンプルです。
- drm: DRM 出力のエンコードを行うためのサンプルです。
- keyframes: KeyFrames をAPIで指定し、その部分でセグメントをカットするエンコードを行うためのサンプルです。
なお、本リポジトリは Bitmovin 公式のサンプル実装の日本語版を提供するものではございません。一実装例として参照ください。