MediaStreamSink

MediaStreamSinkAviStartCaptureクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.AviStartCapture MethodAviStopCaptureクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.AviStopCapture Methodを使用するよりも高度なビデオファイルのレコーディングが可能ですが, 簡単なタスクにおいてはAviStartCaptureAviStopCaptureメソッドの方が使いやすく向いています。 MediaStreamSinkは画像データを様々なビデオフォーマットで保存することができます。またオプション次第で一つ以上のFrameFilterクラスライブラリリファレンス>クラス>FrameFiltersを指定し、動画ファイルとして書き込む前の段階で画像データの分析や変換も可能になります。
FrameFilterクラスライブラリリファレンス>クラス>FrameFilterの実装はフレームを除外することも可能です。よってラプス(特定間隔)録画の設定が簡単にできます。ビデオファイルフォーマットはMediaStreamContainerクラスライブラリリファレンス>クラス>MediaStreamContainerで指定されますが、ファイル内の画像データのフォーマットはAviCompressorクラスライブラリリファレンス>クラス>AviCompressorオブジェクトとして表されるコーデックにより決定します。最も一般的なMediaStreamContainerはAVIです。多くのメディアストリームコンテナがAviCompressorに対応しており、これによってファイルに書き込む前の段階で画像データを圧縮します。

サンプル

[VB.NET]
' MediaStreamSinkを作成する
Dim aviSink As New MediaStreamSink

' AVIはデフォルトのファイルフォーマットなので
' aviSink.StreamContainerの設定はしない

' コーデックとしてDV Videoエンコーダーを設定する
For Each codec As AviCompressor In IcImagingControl1.AviCompressors
     If codec.Name = "DV Video Encoder" Then
         aviSink.Codec = codec
         Exit For
     End If
Next

' ターゲットファイルの名前をつける
aviSink.Filename = "video.avi"

' シンクを設定する
IcImagingControl1.Sink = aviSink

' 録画を開始する
IcImagingControl1.LiveStart()
[C#]
// MediaStreamSinkを作成する
MediaStreamSink aviSink = new MediaStreamSink();
// AVIはデフォルトのファイルフォーマットなので
// aviSink.StreamContainerの設定はしない

// コーデックとしてDV Videoエンコーダーを設定する
foreach( AviCompressor codec in ICImagingControl1.AviCompressors )
{
     if( codec.Name == "DV Video Encoder" )
     {
         aviSink.Codec = codec;
         break;
     }
}

// ターゲットファイルの名前をつける
aviSink.Filename = "video.avi";

// シンクを設定する
ICImagingControl1.Sink = aviSink;

// 録画を開始する
ICImagingControl1.LiveStart();

インフォメーション

ネームスペース: TIS.Imaging
IC Imaging Control 3.0より導入