3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

C/C++ アプリからぺろっと動画を生成するメモ

Last updated at Posted at 2020-08-08

背景

  • サーバーや HPC, ラズパイなどで動かすアプリで, 計算途中の可視化結果などをぺろっと動画にしたい.
    • ラズパイの場合は, ラズパイカメラに画像処理施したものを動画にしたいとか.
  • 別に高度なエンコードはいらない
  • 各種アーキテクチャ(SPIR-V とか)や, 制限された環境(コンパイラ, 実行環境, OS)でも動くのに対応しているのがよい
  • C/C++ アプリに組み込んで使えるのががよい
    • ffmpeg を外部プログラムで走らせるのもめんどい

基本 GIF or Motion JPEG な AVI がよさそうです.

gif

gif-h

で良さそうです!

GIF なので, 画像サイズ大きかったり長い動画つくるとファイルサイズ増えますので注意しましょう.

Motion JPEG + AVI

AVI に Motion JPEG(JPEG 連番)を格納する形式です.
だいたいの動画プレイヤーで見れるかと思います.

実装サンプルはこちら.

ライセンスが無いので, 気になる方は自前で AVI 出力部分を再実装しましょう.

jpeg エンコードは stb_image_write https://github.com/nothings/stb や turbojpeg あたりでよいでしょう.

TODO

  • webm を試す. https://github.com/webmproject/libvpx
  • x86 だとアセンブラを要求しつらい :cry:
  • gif でうまくデータサイズ減らす(画質を落とす)のを試す.
  • HEIF を試す?(パテントやライセンス周りが気になる)
3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?