0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

きっかけ

X, Facebook, Instagramなど画像や動画をアップロードするとき、指定するファイルタイプ、サイズだけアップロードできます。以下のように、Xの仕様となります。
image.png
SNSのAPIを開発する場合、アップロードする前にメディアファイルのバリデーションをしないといけなくなります。
バリデーションのテストで指定するメディアファイルを作成する必要があります。例えば、5MBの画像ファイル、5.1MBの画像ファイル、4.9MBの画像ファイルなど

メディアファイルの作成方法

  • 指定するwidth, heightの画像を作成する場合、以下のサイトで画像が生成できます。
  • それ以外、ffmpegツールで任意的な画像、動画が作成できます。
  • 指定するファイルサイズを作成する場合
    アイデア:既存ファイルサイズ + 空ファイルサイズ = 指定するファイルサイズ
    例えば、20MBの画像の場合
    • 既存の画像ファイルサイズを確認(placeholdで作成したファイルでもよい)。
      image.png
      この場合既存の画像ファイルサイズは65.1kb = 65.1*1024 = 66662.4 byte
    • 作成したいファイルサイズは20MB = 20*1024*1024 = 20971520 byteなので、空ファイルサイズ = 20971520 - 66662.4 = 20904857.6 byte。
      下記のコマンドで空ファイル作成する。count = 20904857.6/1024 = 20414(四捨五入)
      dd if=/dev/zero of=20904857.6.dummy bs=1024 count={count}
      image.png
    • 既存ファイルと上記に生成した空ファイルをくっつければ、作成したいファイルサイズになります。
      cat 1922x1922.png 20904857.6.dummy > 20MB.png
      image.png
  • 指定するwidth, heightの動画を作成する場合、ffmpegツールで作成できます。
    • 下記のコマンドで1920x1922.pngファイルから、5秒の1922x1922の動画が生成できます。
      ffmpeg -loop 1 -framerate 30 -i 1920x1922.png -c:v libx264 -t 5 -pix_fmt yuv420p 1920x1922.mp4
    • 指定するサイズの動画を作成する場合、画像と同じ方法で作成できます。既存動画ファイルサイズ + 空ファイルサイズ = 指定するファイルサイズ

まとめ

ffmpegで指定するwidth, height, size, 再生時間ファイルを作成できるようになります。組み合わせてテスト用のファイル作成は十分だと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?