dsc_WriteEncoder

動画エンコーダーに1フレーム分の映像を転送してエンコードします

dsc_WriteEncoder p1,p2,p3

p1      : 動画エンコーダーID (dsc_CreateEncoder 関数から取得)
p2	: DIB画像データ もしくは HSPのVRAM画像データ
p3      : 上下反転するか(0 = しない, 1 = する)

(プラグイン / モジュール : hspdsc.dll)

解説

動画エンコーダーに1フレーム分の映像を転送してエンコードします。
本命令は、リアルタイムなコンテンツのエンコードには向いていません。

キャプチャ映像などをリアルタイムな映像をエンコードする場合、
dsc_OpenEncoder命令で指定したフレームレートが 30.0 の場合は、
本命令を 1 秒間 に 30 回 きっちり呼び出す必要があります。
(厳密には、0.033 秒 に 1 回 の間隔)
PCの性能不足などにより、呼び出し回数に過不足がある場合は
動画のコマ落ち(早送り)やスロー化の事象が容易に発生します。

p1 に 動画エンコーダーID を指定します。(dsc_CreateEncoder 関数 参照)
p2 には DIBデータ もしくは HSPのVRAMデータを指定します。
mrefdsc_GetImageMem命令で本命令に渡せるデータが取得できます。
p3 には 映像を上下反転するかを指定します。(0 = しない, 1 = する)
通常はしないを選択してください。

正常終了時には stat に 0 が返ります。
異常時には stat に マイナス値が返ります。

サンプル

	// mp4
	mref vram, 66
	dsc_WriteEncoder id_enc, vram, 0

関連項目

dsc_OpenEncoder動画エンコーダーを開いて、動画エンコードできる状態にします(hspdsc.dll)
dsc_CloseEncoder動画エンコーダーを閉じて、動画ファイルのファイナライズをします(hspdsc.dll)

サンプル逆引き (4)

(HSP3) sample10 [HSPサンプルのブロック崩しをMP4で出力].hsp
(HSP3) sample10 [HSPサンプルのブロック崩しをMP4で出力]_x64.hsp
(HSP3) sample11 [MP4形式でキャプチャを保存する].hsp
(HSP3) sample11 [MP4形式でキャプチャを保存する]_x64.hsp

情報

プラグイン / モジュールhspdsc.dll
バージョン2.13
作成日2021/6/13
著作者イノビア(inovia)
URLhttps://hsp.moe/
備考HSP向け DirectShow キャプチャプラグイン

【32bit版ランタイムの場合】
hspdsc.asをインクルード
バーコードを使用する場合はhspbar.asをインクルード

【64bit版ランタイムの場合】
hsp3_64.asをインクルード
hspdsc64.asをインクルード
バーコードを使用する場合はhspbar64.asをインクルード
グループ動画エンコード
対応環境
  • その他 : Windows 7 以降、DirectX 11以上
移植のヒントWindows
hs ファイルhsphelp\hspdsc.hs