LoginSignup
4
0

More than 3 years have passed since last update.

nannouでスケッチを動画として書き出す

Last updated at Posted at 2020-09-16

はじめに

nannou は Rustのクリエイティブコーディングライブラリです。
今回の記事ではそのスケッチを動画に書き出す方法を備忘録として書いておきます。

環境

nannou : 0.14.1
Linux

概要

  1. nannouのAPIでフレームをキャプチャする
  2. png形式で保存
  3. ffmpegでmp4に変換

フレームをキャプチャしてpngで保存

以下のようなコードで ./cap/プロジェクト名/フレーム数.png でpngで書き出せる。

fn captured_frame_path(app: &App, frame: &Frame) -> std::path::PathBuf {
    app.project_path()
        .expect("failed to locate `project_path`")
        .join("./cap/")
        .join(app.exe_name().unwrap())
        .join(format!("{:04}", frame.nth()))
        .with_extension("png")
}

fn view(app: &App, model: &Model, frame: Frame){
    let file_path = captured_frame_path(app, &frame);
    app.main_window().capture_frame(file_path);
}

ffmpegでmp4に変換

ffmpegはクロスプラットフォームの録画とか変換用のツールです。
公式サイトやGoogle検索を頼りにインストールしてください。

cd cap/プロジェクト名 # 先程のキャプチャしたpngのあるフォルダへ移動
ffmpeg -framerate 30 -i %04d.png -vcodec libx264 -pix_fmt yuv420p -r 60 out.mp4     

を行うことで、out.mp4 という動画ファイルが完成します。

ツイッターに上げるなら

ツイッターでの動画の規約は以下

■動画の形式
スマートフォンのアプリではMP4とMOVの動画形式をサポート。ブラウザではMP4(H264形式、AACオーディオ)をサポートしています。

■動画のサイズ(容量)
アップロードできるサイズは最大512MBです。

■動画の時間
アップロードできる動画の長さは2分20秒間以内です。

■ブラウザでアップできる動画の解像度と縦横比
最小解像度: 32 x 32
最大解像度: 1920 x 1200、または1200 x 1900
縦横比: 1:2.39~2.39:1の範囲
最大フレームレート: 40fps
最大ビットレート: 25Mbps

4
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
4
0