Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

数日分の日記を動画化する #17

Open
yyokii opened this issue Aug 21, 2023 · 1 comment
Open

数日分の日記を動画化する #17

yyokii opened this issue Aug 21, 2023 · 1 comment

Comments

@yyokii
Copy link
Owner

yyokii commented Aug 21, 2023

https://tattn.dev/blog/2023/08/20/internalhackday19/

TODO

  • 動画のスタイルはどうするか決める
    • イメージは写真アプリのメモリー機能
  • 何を動画化するのか決める
  • 対象日記は1月?
    • 一旦それで
  • AVAssetWriterの調査をする
    • 画像化してそれをフレームごとに表示するイメージ
@yyokii
Copy link
Owner Author

yyokii commented Aug 22, 2023

AVFoundation周りのメモ

FPS, Timescale

FPS (Frames Per Second)

  • 動画やアニメーションの再生速度を示す。
  • 1秒あたりに表示されるフレーム数。例:30fpsは、1秒あたり30フレームが表示されることを意味する。

Timescale

  • 動画や音声の時間の「スケール」や「単位」を示す。
  • 例:timescaleが1000の場合、1秒は1000の単位に分割される。

timescaleを600で設定した場合、1秒は600の単位に分けられます。この場合、1単位は1/600秒となる。
fpsは、1秒あたりのフレーム数を表すもので、これとtimescaleは別の概念。しかし、timescaleとfpsを組み合わせることで、各フレームの時間の長さを具体的に計算することができる。

例えば、30fpsの動画でtimescaleが600の場合、1フレームの時間は次のように計算できる:

1秒の単位 ÷ fps
= 600 ÷ 30
= 20単位

この場合、1フレームは20単位の時間を持つ

AVAssetWriter

これを利用してQuickTime ムービー ファイル形式や MPEG-4 ファイル形式などのファイル形式にメディアを書き込みます。

AVAssetWriterInput

asset writerの出力ファイル内のトラックにメディアサンプルを追加するオブジェクト。

AVAssetWriterInputPixelBufferAdaptor

ピクセルバッファーを出力ファイルに割り当てるために使用するピクセルバッファー プールを提供する。通常、バッファ割り当てに提供されたプールを使用する方が、独自のプールを管理するより効率的。
特定の形式(CVPixelBuffer)のメディアデータAVAssetWriterInput に効果的に渡すためのアダプター。
CVPixelBufferのデータをAVAssetWriterInputが理解できる形に変換してくれる。
このアダプターを使用することで、ピクセルバッファの取り扱いがシンプルになり、高度な変換や処理を気にすることなく、簡単にビデオフレームを動画に追加することができる。

AVAssetWriterInput はメディアデータの書き込みのための入力チャンネルそのもので、AVAssetWriterInputPixelBufferAdaptor は特定のデータ形式をその入力チャンネルに効果的に渡すためのヘルパー。

CVPixelBuffer

メインメモリ内のピクセルを保持するイメージバッファであり、フレームを生成するアプリや、Core Imageを使用するアプリで利用される。

コーデックキー

ビデオやオーディオのデータを圧縮するための技術やアルゴリズムを特定するための識別子。AVFoundationなどのメディア関連のライブラリやフレームワークで使用される際、特定のコーデックを選択するためにこのキーを使用する。

具体的には、AVVideoCodecKeyはAVAssetWriterなどでビデオのエンコード形式を指定するためのキーとして使用される。

いくつかの一般的なコーデックキーの値:

  • AVVideoCodecType.h264: H.264/AVC コーデック。非常に一般的なビデオコーデックで、多くのデバイスやプラットフォームで広くサポートされている。
  • AVVideoCodecType.hevc: H.265/HEVC コーデック。H.264の後継として開発され、同等の品質でより低いビットレートを実現することができる。
  • AVVideoCodecType.appleProRes4444: Apple ProRes 4444。プロのビデオ制作でよく使用される高品質のコーデック。
  • AVVideoCodecType.appleProRes422: Apple ProRes 422。ProRes 4444よりもデータレートが低いバージョン。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant