オンザフライでのコーディングのサポート。
私たちの多くはこの瞬間を待っていましたが、第3バージョンがオブジェクトモデルを介してアプリケーションのライブモードを完全にサポートしていることがわかりました。
// LiveJob
using (LiveJob job = new LiveJob())
{
//
LiveFileSource fileSource = job.AddFileSource( @"C:\myvideo.wmv" );
// ,
fileSource.PlaybackMode = FileSourcePlaybackMode.Loop;
//
job.ActivateSource(fileSource);
…
* This source code was highlighted with Source Code Highlighter .
LiveJobオブジェクトを使用して、システムにインストールされているビデオまたはオーディオデバイスのリスト全体を取得し、それらをソースとして追加できます。 より詳細な外観については、Microsoft.Expression.Encoder.Live名前空間を調べ、インストールされている例を参照できます。
H.264構成を完全にサポートする高度なプロファイル
バージョン3では、プロファイルをタイプ別に分割しました。 したがって、メインのH.264ビデオプロファイルを扱っている場合、このオブジェクトにのみ属するプロパティが表示されます。 (H.264をサポートするには、フルバージョンのエンコーダーが必要です)これに加えて、MediaItemオブジェクトのOutputFormatプロパティ内でプロファイルを定義することに注意してください。
ビットレートは、ConstantBitrate、VariableConstrainedBitrate、VariableUnconstrainedBitrate、VariableQualityBitrateの新しいビットレートクラスを使用して決定されます。 繰り返しますが、分離するのが理にかなっているプロパティのみがクラスから除外されました。 たとえば、VariableConstrainedBitrateクラスを使用する場合、PeakBitrateプロパティがありますが、このプロパティは他のビットレートクラスに移動していません。これは、制限された変数タイプのビットレートに適用できるためです。
MainVC1VideoProfile videoProfile = new MainVC1VideoProfile();
videoProfile.Bitrate = new ConstantBitrate(350);
videoProfile.Complexity = VideoComplexity.Fastest;
videoProfile.Size = new System.Drawing.Size(640, 480);
MediaItem item = new MediaItem( @"C:\myvideo.wmv" );
item.OutputFormat = new WindowsMediaOutputFormat()
{
VideoProfile = videoProfile
};
* This source code was highlighted with Source Code Highlighter .
スムーズなストリーミング
エンコーダーSDKは、スムーズストリーミング形式でのエンコードをサポートしています(これも完全版のみです)。 ビデオプロファイルクラスに、エンコードする各ストリームの詳細を設定するために使用されるストリーミングプロパティが追加されました。 スムーズストリーミングを使用して、VC-1およびH.264の固定ビットレートまたはVC-1を使用する制限された可変ビットレートにエンコードできます。 また、VC-1と制限された可変ビットレートを使用して、コンテンツとビットレートに基づいてエンコーダがストリームサイズを自動的に決定するように設定できます。 この場合、各スレッドの最大の幅と高さを設定します。
AdvancedVC1VideoProfile videoProfile = new AdvancedVC1VideoProfile();
// VideoProfile,
//
videoProfile.Streams.RemoveAt(0);
videoProfile.Streams.Add(
new VariableConstrainedBitrate(1450, 1600),
new System.Drawing.Size(800, 600));
videoProfile.Streams.Add(
new VariableConstrainedBitrate(1050, 1600),
new System.Drawing.Size(640, 480));
videoProfile.Streams.Add(
new VariableConstrainedBitrate(600, 1600),
new System.Drawing.Size(400, 300));
// smooth streaming videoProfile.SmoothStreaming = true;
videoProfile.Streams.AutoSize = true ;
* This source code was highlighted with Source Code Highlighter .
異なるソースを一緒にエンコードする
2番目のバージョンでは、リーダー、メインビデオ、およびトレーラーを使用して3つのソースを組み合わせることができました。 バージョン3では、この制限を過去に残し、新しいSourceクラスを使用して多くのソースを1つにまとめることができます。
MediaItem item = new MediaItem( "mymovie1.wmv" );
item.Sources.Add( new Source( "mymovie2.wmv" ));
item.Sources.Add( new Source( "mymovie3.avi" ));
item.Sources.Add( new Source( "mymovie4.wmv" ));
* This source code was highlighted with Source Code Highlighter .
ファイル情報
既存のメディアファイルを分析して、ビデオおよびオーディオストリームに関する情報を判断するための新しいクラスがあります(複数のファイルがある場合)
AudioVideoFile source = new AudioVideoFile( "myvideo.wmv" );
Console .WriteLine(source.VideoStreams[0].VideoSize);
Console .WriteLine(source.VideoStreams[0].AspectRatio);
Console .WriteLine(source.VideoStreams[0].Duration);
Console .WriteLine(source.AudioStreams[0].Channels);
Console .WriteLine(source.AudioStreams[0].SampleSize);
* This source code was highlighted with Source Code Highlighter .
ソースファイルに複数のオーディオトラックがある場合、SourceクラスのAudioStreamIndexプロパティを使用して、エンコードに使用するトラックを決定できます。
item.Sources[0].AudioStreamIndex = 2;
* This source code was highlighted with Source Code Highlighter .
プリセット
アプリケーションとともにインストールされるすべての標準プリセットについて、すべてのプロファイルプロパティを個別に設定したくない場合に作業を簡素化する、以前に宣言された静的インスタンスを定義しました。
mediaItem.ApplyPreset(Presets.VC1HighSpeedBroadbandVBR);
* This source code was highlighted with Source Code Highlighter .
そのため、Expression Encoder 3オブジェクトモデルのいくつかの新しい変更点と改善点について簡単に紹介しました。