Screenshot

最終更新日:2025-05-30 09:46:41

スクリーンショット機能により、動画から高品質な静止画を抽出し、サムネイル・カバー画像・プレビュー用フレーム・コンテンツモデレーションに活用できます。CDNetworksプラットフォームは多様な入力動画フォーマットをサポートし、高度なフォーマットオプションで様々な出力形式の画像を生成可能です。

対応フォーマット

  • 入力フォーマット: MP4、FLV、M3U8、TS、MKV、MOV、WMV、AVI、VP8、VP9、RealVideo、Windows Media Videoなど
  • コーデック: H.265、H.264、H.263、MPEGなど
  • 出力フォーマット: JPG、PNG、GIF(JPG/PNGはCSSスプライト対応)

使用方法

リクエストボディにfopsコマンドを以下の構造で設定してください:

<op>/<Format>  
    /offset/<value>  
    /offsets/<value>  
    /interval/<value>  
    /vframeN/<value>  
    /t/<value>  
    /sprite/<value>  
    /mode/<value>  
    /w/<value>  
    /h/<value>  
    /autofill/<value>  
    /rotate/<value>  
    /isZip/<value>  
    |saveas/<Urlsafe_Base64_Encode(bucket:filekey)>  

パラメータ説明

パラメータ 必須 説明
op はい 操作タイプ。スクリーンショットはvframeを指定
format はい 出力フォーマット(jpg/png/gifなど)
offset いいえ 単一フレーム取得タイムスタンプ(秒単位、小数点3桁まで対応)
offsets いいえ 複数フレーム取得タイムスタンプ(昇順でコロン区切り)
例:0:30:60:120 → 0秒/30秒/60秒/120秒のフレームを取得
interval いいえ 複数フレーム取得間隔(秒単位)
vframeN いいえ 均等間隔で取得する総フレーム数
t いいえ GIF出力時間(秒単位、デフォルト5秒)
sprite いいえ CSSスプライト生成(行×列パターン指定。例:4x5で4行5列の結合画像)
注:intervalパラメータと併用必須
mode いいえ アスペクト比維持スケーリングモード(モードパラメータ表参照)
w いいえ スクリーンショット幅(ピクセル、1-1920)
h いいえ スクリーンショット高さ(ピクセル、1-1080)
autofill いいえ サイズ調整時の背景処理(w/h併用時):
0(デフォルト) - 強制リサイズ(歪み発生可能性)
1 - アスペクト比維持+黒背景パディング
注:modeパラメータと併用不可
rotate いいえ 回転角度: 90/180/270/auto(自動回転)
isZip いいえ 複数フレームZIPパッケージ化:
0 - 非パッケージ
1 - ZIP生成(連番ファイル名例:a_00001.jpg)
注:出力ファイル名は.zipで終了する必要あり
saveas いいえ 出力先パス(URL-safe Base64エンコード必須): Urlsafe_Base64_Encode(bucket:savedfilename)

モードパラメータ表

モードパラメータ 説明
/mode/1 アスペクト比維持+中央クロップで正確なサイズに調整
片方の寸法のみ指定時は最小辺に合わせてスケーリング
/mode/2 アスペクト比維持(クロップなし)で最大サイズに適合
片方の寸法指定時は他方の寸法を比例調整
/mode/3 アスペクト比維持(クロップなし)で正確なサイズに調整
片方の寸法指定時は他方の寸法を比例調整

使用例

test-mp4-encryptバケットの動画test.mp4から5秒目のフレームをJPG画像test.jpgとして保存:

擬似コード例

curl -v -X POST  
–d "bucket=Urlsafe_Base64_Encode(test-mp4-encrypt)&key=Urlsafe_Base64_Encode(test.mp4)&fops=Urlsafe_Base64_Encode(vframe/jpg/offset/5|saveas/Urlsafe_Base64_Encode(test-mp4-encrypt:test.jpg))&force=1&separate=1"  
–H "Authorization:AccessKey:EncodeSign"  
--url "http://mgrDomain/fops"  

実際のリクエスト

curl -v -X POST  
-d "bucket=dGVzdC1tcDQtZW5jcnlwdA==&key=dGVzdC5tcDQ=&fops=dmZyYW1lL2pwZy9vZmZzZXQvNXxzYXZlYXMvZEdWemRDMXRjRFF0Wlc1amNubHdkRHAwWlhOMExtcHdadz09&force=1&separate=1"  
-H "Authorization:AccessKey:EncodeSign"  
--url "http://mgrDomain/fops"