Open yyokii opened 1 year ago
FPS (Frames Per Second)
Timescale
timescaleを600で設定した場合、1秒は600の単位に分けられます。この場合、1単位は1/600秒となる。 fpsは、1秒あたりのフレーム数を表すもので、これとtimescaleは別の概念。しかし、timescaleとfpsを組み合わせることで、各フレームの時間の長さを具体的に計算することができる。
例えば、30fpsの動画でtimescaleが600の場合、1フレームの時間は次のように計算できる:
1秒の単位 ÷ fps = 600 ÷ 30 = 20単位
この場合、1フレームは20単位の時間を持つ
これを利用してQuickTime ムービー ファイル形式や MPEG-4 ファイル形式などのファイル形式にメディアを書き込みます。
asset writerの出力ファイル内のトラックにメディアサンプルを追加するオブジェクト。
ピクセルバッファーを出力ファイルに割り当てるために使用するピクセルバッファー プールを提供する。通常、バッファ割り当てに提供されたプールを使用する方が、独自のプールを管理するより効率的。 特定の形式(CVPixelBuffer)のメディアデータAVAssetWriterInput に効果的に渡すためのアダプター。 CVPixelBufferのデータをAVAssetWriterInputが理解できる形に変換してくれる。 このアダプターを使用することで、ピクセルバッファの取り扱いがシンプルになり、高度な変換や処理を気にすることなく、簡単にビデオフレームを動画に追加することができる。
AVAssetWriterInput はメディアデータの書き込みのための入力チャンネルそのもので、AVAssetWriterInputPixelBufferAdaptor は特定のデータ形式をその入力チャンネルに効果的に渡すためのヘルパー。
メインメモリ内のピクセルを保持するイメージバッファであり、フレームを生成するアプリや、Core Imageを使用するアプリで利用される。
ビデオやオーディオのデータを圧縮するための技術やアルゴリズムを特定するための識別子。AVFoundationなどのメディア関連のライブラリやフレームワークで使用される際、特定のコーデックを選択するためにこのキーを使用する。
具体的には、AVVideoCodecKeyはAVAssetWriterなどでビデオのエンコード形式を指定するためのキーとして使用される。
いくつかの一般的なコーデックキーの値:
https://tattn.dev/blog/2023/08/20/internalhackday19/
TODO