Video Writer

VideoWriterは、画像を圧縮してビデオファイルに保存します。 詳細...

データ構造体

struct   IC4_VIDEO_WRITER

VideoWriterを表します。 詳細...

列挙型

enum   IC4_VIDEO_WRITER_TYPE { IC4_VIDEO_WRITER_MP4_H264 , IC4_VIDEO_WRITER_MP4_H265 }

利用可能なVideoWriterのタイプを定義します。 詳細...

関数

bool  ic4_videowriter_create (enum IC4_VIDEO_WRITER_TYPE type, struct IC4_VIDEO_WRITER **ppVideoWriter)

指定したタイプの新しいVideoWriterを作成します。

struct IC4_VIDEO_WRITER * ic4_videowriter_ref (struct IC4_VIDEO_WRITER *pVideoWriter)

VideoWriterの内部参照カウントを1つ増やします。

void ic4_videowriter_unref (struct IC4_VIDEO_WRITER *pVideoWriter)

VideoWriterの内部参照カウントを1つ減らします。

bool ic4_videowriter_begin_file (struct IC4_VIDEO_WRITER *pVideoWriter, const char *file_name, const struct IC4_IMAGE_TYPE *image_type, double frame_rate)

画像を書き込める新しいビデオファイルを開きます。

bool ic4_videowriter_finish_file (struct IC4_VIDEO_WRITER *pVideoWriter)

ビデオファイルへの書き込みを完了します。

bool ic4_videowriter_add_frame (struct IC4_VIDEO_WRITER *pVideoWriter, struct IC4_IMAGE_BUFFER *buffer)

現在開いているビデオファイルに画像を追加します。

bool ic4_videowriter_add_frame_copy (struct IC4_VIDEO_WRITER *pVideoWriter, const struct IC4_IMAGE_BUFFER *buffer)

現在開いているビデオファイルに画像を追加します。その過程で内容をコピーします。

bool ic4_videowriter_get_property_map (struct IC4_VIDEO_WRITER *pVideoWriter, struct IC4_PROPERTY_MAP **ppPropertyMap)

エンコーダ設定用のPropertyMapを返します。

詳細説明

VideoWriterは、画像を圧縮してビデオファイルに保存します。

利用可能なVideoWriterは複数あります:

  • H264エンコーダを使用したMP4ファイル
  • H265エンコーダを使用したMP4ファイル

新しいVideoWriterを作成するには、目的のVideoWriterのタイプを渡して ic4_videowriter_create() を呼び出します。

ic4_videowriter_begin_file() を呼び出した後、ic4_videowriter_add_frame() を繰り返し呼び出してファイルに画像を書き込みます。ファイルを確定して閉じるには ic4_videowriter_finish_file() を呼び出します。

VideoWriterは、ic4_videowriter_get_property_map() が返すPropertyMapを通じて設定できます。このようなPropertyMapの使い方の詳細については、Properties を参照してください。

列挙型ドキュメント

◆ IC4_VIDEO_WRITER_TYPE

利用可能なVideoWriterのタイプを定義します。

列挙子
IC4_VIDEO_WRITER_MP4_H264 

H.264エンコーディングでMP4ファイルを作成します。

IC4_VIDEO_WRITER_MP4_H265 

H.265/HEVCエンコーディングでMP4ファイルを作成します。

関数ドキュメント

◆ ic4_videowriter_add_frame()

bool ic4_videowriter_add_frame ( struct IC4_VIDEO_WRITER *  pVideoWriter,
struct IC4_IMAGE_BUFFER *  buffer 
)

現在開いているビデオファイルに画像を追加します。

パラメータ
[in]pVideoWriter以前にファイルへの書き込みを開始したVideoWriter
[in]bufferImageBuffer
注意
ImageBufferのイメージタイプは、ファイルの開始時に ic4_videowriter_begin_file() に渡した image_type パラメータと一致している必要があります。
VideoWriterはImageBufferへの参照を保持する場合があります。これにより、ImageBufferの解放および再利用が遅延することがあります。この場合、バッファは共有状態となり、安全に書き込めなくなります(ic4_imagebuffer_is_writable を参照)。
VideoWriterが常にImageBufferからデータを即座にコピーするようにするには、ic4_videowriter_add_frame_copy を使用します。
戻り値
成功した場合は true、それ以外の場合は false を返します。
エラー情報を取得するには ic4_get_last_error() を使用します。

◆ ic4_videowriter_add_frame_copy()

bool ic4_videowriter_add_frame_copy ( struct IC4_VIDEO_WRITER *  pVideoWriter,
const struct IC4_IMAGE_BUFFER *  buffer 
)

現在開いているビデオファイルに画像を追加します。その過程で内容をコピーします。

パラメータ
[in]pVideoWriter以前にファイルへの書き込みを開始したVideoWriter
[in]bufferImageBuffer
注意
ImageBufferのイメージタイプは、ファイルの開始時に ic4_videowriter_begin_file() に渡した image_type パラメータと一致している必要があります。
ImageBufferの内容はコピーされるため、バッファの参照カウントは増加せず、最後の参照が解放されればすぐに再利用できます。
コピー操作が不要な場合に回避するには、ic4_videowriter_add_frame を使用します。
戻り値
成功した場合は true、それ以外の場合は false を返します。
エラー情報を取得するには ic4_get_last_error() を使用します。

◆ ic4_videowriter_begin_file()

bool ic4_videowriter_begin_file ( struct IC4_VIDEO_WRITER *  pVideoWriter,
const char *  file_name,
const struct IC4_IMAGE_TYPE *  image_type,
double  frame_rate 
)

画像を書き込める新しいビデオファイルを開きます。

パラメータ
[in]pVideoWriterVideoWriter
[in]file_name新しいビデオファイルの名前
[in]image_type書き込む画像のイメージタイプ
[in]frame_rateビデオファイルの再生フレームレート
戻り値
成功した場合は true、それ以外の場合は false を返します。
エラー情報を取得するには ic4_get_last_error() を使用します。

◆ ic4_videowriter_create()

bool ic4_videowriter_create ( enum IC4_VIDEO_WRITER_TYPE  type,
struct IC4_VIDEO_WRITER **  ppVideoWriter 
)

指定したタイプの新しいVideoWriterを作成します。

パラメータ
[in]type作成するVideoWriterのタイプを選択します
[out]ppVideoWriter新しいVideoWriterのハンドルを受け取るポインタ
VideoWriterが不要になったら、ic4_videowriter_unref() を使用してオブジェクト参照を解放してください。
戻り値
成功した場合は true、それ以外の場合は false を返します。
エラー情報を取得するには ic4_get_last_error() を使用します。

◆ ic4_videowriter_finish_file()

bool ic4_videowriter_finish_file ( struct IC4_VIDEO_WRITER *  pVideoWriter)

ビデオファイルへの書き込みを完了します。

パラメータ
[in]pVideoWriter以前にファイルへの書き込みを開始したVideoWriter
戻り値
成功した場合は true、それ以外の場合は false を返します。
エラー情報を取得するには ic4_get_last_error() を使用します。

◆ ic4_videowriter_get_property_map()

bool ic4_videowriter_get_property_map ( struct IC4_VIDEO_WRITER *  pVideoWriter,
struct IC4_PROPERTY_MAP **  ppPropertyMap 
)

エンコーダ設定用のPropertyMapを返します。

パラメータ
[in]pVideoWriterVideoWriter
[out]ppPropertyMapPropertyMapを受け取るハンドルへのポインタです。
PropertyMapが不要になったら、ic4_propmap_unref() を呼び出します。
戻り値
成功した場合は true、それ以外の場合は false を返します。
エラー情報を取得するには ic4_get_last_error() を使用します。

◆ ic4_videowriter_ref()

struct IC4_VIDEO_WRITER * ic4_videowriter_ref ( struct IC4_VIDEO_WRITER *  pVideoWriter)

VideoWriterの内部参照カウントを1つ増やします。

パラメータ
[in]pVideoWriterVideoWriterへのポインタ
戻り値
pDisplay として渡されたポインタ
備考
pVideoWriter が NULL の場合、この関数は NULL を返します。エラー値は設定されません。
関連項目
ic4_videowriter_unref

◆ ic4_videowriter_unref()

void ic4_videowriter_unref ( struct IC4_VIDEO_WRITER *  pVideoWriter)

VideoWriterの内部参照カウントを1つ減らします。

参照カウントが0に達すると、オブジェクトは破棄されます。

パラメータ
[in]pVideoWriterVideoWriterへのポインタ
備考
pVideoWriter が NULL の場合、この関数は何も行いません。エラー値は設定されません。
関連項目
ic4_videowriter_ref