tencent cloud

フィードバック

サーバーからビデオをアップロードする方法

最終更新日:2023-10-26 17:26:52

    ご使用にあたっての注意事項

    内容紹介

    ここでは、ビデオファイルをローカルのサーバーからVODにアップロードする方法をご紹介します。

    費用

    ここで提供するコードは無償のオープンソースですが、使用過程において以下の費用が発生することがあります。

    • Tencent CloudのCloud Virtual Machine(CVM)インスタンスの購入は、アップロードスクリプトの実行に使用します。詳細は CVM料金をご参照ください。
    • VODのストレージ容量はアップロードをプルしたビデオの保存に使用します。詳細は ストレージ料金をご参照ください。

    CVMのビデオをVODにアップロード

    手順1:Tencent Cloud CVMの準備

    アップロードスクリプトは、1台のTencent Cloud CVM上で実行させる必要があります。要件は次のとおりです。

    • リージョン:任意。
    • モデル:公式サイトは最低構成(1コア1GB)であればOKです。
    • パブリックネットワーク:パブリックIPを有する必要があります。帯域幅は1Mbps以上。
    • OS:公式パブリックイメージUbuntu Server 16.04.1 LTS 64ビットまたはUbuntu Server 18.04.1 LTS 64ビット

    CVMの購入方法は 操作ガイド - インスタンス作成をご参照ください。システムの再インストール方法は 操作ガイド - システム再インストールをご参照ください。

    注意:

    上述の条件に適合するTencent Cloud CVMがない場合は、その他のパブリックネットワークアクセスを備えたLinux(CentOS、Debianなど)またはMac機器でスクリプトを実行することもできます。ただし、OSの違いによってスクリプトの特定のコマンドを修正する必要があります。具体的な修正方式については、開発者自身で検索してください。

    手順2:VODのアクティブ化

    クイックスタート - 手順1 を参照してVODサービスをアクティブにします。

    手順3:APIキーの取得

    ビデオのアップロードのリクエストにはAPIキー(SecretIdおよびSecretKey)が必要です。まだキーを作成していない場合は、 キードキュメントの作成 を参照して、新しいAPIキーを作成してください。キーを作成済の場合は、 キードキュメントの表示 を参照してAPIキーを取得してください。

    手順4:コードのダウンロードおよびSDKのインストール

    手順1 で準備したCVM(ログイン方法の詳細は 操作ガイド - Linuxにログインをご参照ください)にログインして、リモートターミナルで以下のコマンドを入力して実行します。

    ubuntu@VM-69-2-ubuntu:~$ export SECRET_ID=AKxxxxxxxxxxxxxxxxxxxxxxx; export SECRET_KEY=xxxxxxxxxxxxxxxxxxxxx;git clone https://github.com/tencentyun/vod-server-demo.git ~/vod-server-demo; bash ~/vod-server-demo/installer/server_upload.sh
    
    説明:

    コマンドの中のSECRET_IDおよびSECRET_KEYに 手順3 で取得したコンテンツに割り当ててください。

    このコマンドでは、GithubからDemoソースコードをダウンロードして、スクリプトのインストールを自動的に実行します。インストールのプロセスには数分間必要になり(CVMのネットワーク状況次第)、その間、リモートターミナルは類似した以下の情報を出力します。

    [2020-06-23 19:56:31]pip3のインストール開始。
    [2020-06-23 19:56:34]pip3のインストール成功。
    [2020-06-23 19:56:34]VOD PythonアップロードSDKのインストールを開始。
    [2020-06-23 19:56:36]VOD PythonアップロードSDKのインストール完了。
    [2020-06-23 19:56:36]SDKパラメータの設定開始。
    [2020-06-23 19:56:36]SDKパラメータの設定完了。
    

    手順5:ビデオのアップロード

    アップロードの開始前に、CVMでビデオファイルおよびカバーピクチャ(オプション)を準備しておく必要があります。ビデオをCVMにアップロードするのに不都合がある場合は、リモートターミナルで以下のコマンドを実行して、テストビデオおよびテストカバーをCVMにダウンロードすることができます。

    ubuntu@VM-69-2-ubuntu:~$ wget http://1400329073.vod2.myqcloud.com/d62d88a7vodtranscq1400329073/7a9b2b565285890804459281865/v.f100010.mp4 -O ~/vod-server-demo/server_upload/tencent_cloud.mp4; wget http://1400329073.vod2.myqcloud.com/ff439affvodcq1400329073/8aa658d15285890804459940822/5285890804459940825.jpg -O ~/vod-server-demo/server_upload/tencent_cloud.jpg
    

    server_upload.pyスクリプトを実行してトランスコードを開始:

    ubuntu@VM-69-2-ubuntu:~$ cd ~/vod-server-demo/server_upload/; python3 server_upload.py ./tencent_cloud.mp4 ./tencent_cloud.jpg
    
    説明:

    コマンドのビデオパスおよびカバー画像のパスを実際のファイルパスに置換してください。そのうち、カバー画像のパスのパラメータがオプションで、空のままにすると、アップロード後のビデオにカバーは付きません。

    このコマンドは、 tencent_cloud.mp4 ビデオを VODにアップロードすると同時に、アップロードした tencent_cloud.jpg 画像をそのカバーにします。アップロードの完了後、リモートターミナルは以下のような情報を出力します。

    {"CoverUrl": "http://1400329073.vod2.myqcloud.com/ff439affvodcq1400329073/8aa658d15285890804459940822/5285890804459940825.jpg", "FileId": "5285890804459940822", "MediaUrl": "http://1400329073.vod2.myqcloud.com/ff439affvodcq1400329073/8aa658d15285890804459940822/f0.mp4", "RequestId": "84a7fb42-9f05-4acd-9cc8-843690b188ce"}
    
    説明:

    自身のビデオを使用してテストを行う場合は、CVM帯域幅が不足のためにアップロード時間がかかりすぎないように、小さめのビデオファイル(例えば数MB)を使用することをお勧めします。

    手順6:結果の表示

    コンソールの ビデオ管理 画面で、アップロードしたビデオファイルおよびカバーを見ることができます。

    コードの解釈

    1. main()はスクリプトのエントリー。

    2. parse_conf_file()を呼び出して、config.jsonファイルから設定情報を読み取ります。設定項目の説明は以下のとおりです。

      フィールド データ型 機能
      secret_id String APIキー
      secret_key String APIキー
      procedure String タスクフロー名。ビデオのアップロード完了後、そのタスクフローは自動的にトリガーされます。デフォルトは空です。
      subappid String ビデオを VODサブアプリケーションにアップロードしますか
      説明:

      このDemoは、procedureおよびsubappidの2つのアップロードパラメータのみをサポートしています。すべての機能については、PythonアップロードSDKインターフェースの記述をご参照ください。

    3. コマンドラインパラメータから、アップロードするビデオファイルのローカルパスおよびカバー画像パス(カバーがある場合)を取得してから、upload_media()を呼び出してアップロードを開始します。

             if len(sys.argv) < 2:
              usage()
              return
          video_path = sys.argv[1]
          cover_path = sys.argv[2] if len(sys.argv) > 2 else ""
      
          # アップロードの開始
          rsp = upload_media(configuration, video_path, cover_path)
      
    4. upload_media()で、Python SDKが提供する方法を使用して、1個のアップロードインスタンスclientを構築します。その後、reqにアップロードパラメータを設定して、最後にアップロードを開始します。

                 client = VodUploadClient(conf["secret_id"], conf["secret_key"])
              req = VodUploadRequest()
      
              req.MediaFilePath = video
              if cover != "":
                  req.CoverFilePath = cover
              if conf["procedure"] != "":
                  req.Procedure = conf["procedure"]
              req.SubAppId = int(conf["subappid"])
      
              rsp = client.upload("ap-guangzhou", req)
              return rsp
      
      
    注意:

    client.upload()の最初のパラメータ("ap-guangzhou")は、アップロードされたインスタンスのアクセスリージョンです。ビデオのアップロードされたビデオのストレージリージョンではありません。そのパラメータは"ap-guangzhou"に固定するだけです。アップロードしたビデオのストレージリージョンを指定する場合は、req.StorageRegionパラメータを設定してください。

    その他の機能

    VOD サーバーからアップロードするSDKは、その他の機能もサポートしています。ビデオ名、分類、期限切れなどを設定する場合の詳細情報は、対応する言語の SDK開発ガイドをご参照ください。

    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)