本文整理汇总了C#中AviWriter.AddVideoStream方法的典型用法代码示例。如果您正苦于以下问题:C# AviWriter.AddVideoStream方法的具体用法?C# AviWriter.AddVideoStream怎么用?C# AviWriter.AddVideoStream使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AviWriter
的用法示例。
在下文中一共展示了AviWriter.AddVideoStream方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static void Main(string[] args)
{
var endOfRec = DateTime.Now.Add(TimeSpan.FromSeconds(30));
using (var writer = new AviWriter("test.avi")
{
FramesPerSecond = 15,
EmitIndex1 = true
})
{
var stream = writer.AddVideoStream();
stream.Width = Screen.PrimaryScreen.WorkingArea.Width;
stream.Height = Screen.PrimaryScreen.WorkingArea.Height;
stream.Codec = KnownFourCCs.Codecs.Uncompressed;
stream.BitsPerPixel = BitsPerPixel.Bpp32;
var googleChrome = new TestCase();
Task.Factory.StartNew(() =>
{
googleChrome.Scenario("http://www.google.com", "что посмотреть сегодня?");
});
var buffer = new byte[Screen.PrimaryScreen.WorkingArea.Width * Screen.PrimaryScreen.WorkingArea.Height * 4];
while (!TestCase.isFinished)
{
GetScreenshot(buffer);
stream.WriteFrame(true, buffer, 0, buffer.Length);
}
}
Console.WriteLine("Execution Done");
}
示例2: StartRecordingThread
private void StartRecordingThread(string videoFileName, ISeleniumTest scenario, int fps)
{
fileName = videoFileName;
using (writer = new AviWriter(videoFileName)
{
FramesPerSecond = fps,
EmitIndex1 = true
})
{
stream = writer.AddVideoStream();
this.ConfigureStream(stream);
while (!scenario.IsFinished || forceStop)
{
GetScreenshot(buffer);
//Thread safety issues
lock (locker)
{
stream.WriteFrame(true, buffer, 0, buffer.Length);
}
}
}
}
示例3: CreateVideo
public static void CreateVideo(List<Frame> frames, string outputFile)
{
var writer = new AviWriter(outputFile)
{
FramesPerSecond = 30,
// Emitting AVI v1 index in addition to OpenDML index (AVI v2)
// improves compatibility with some software, including
// standard Windows programs like Media Player and File Explorer
EmitIndex1 = true
};
// returns IAviVideoStream
var stream = writer.AddVideoStream();
// set standard VGA resolution
stream.Width = 640;
stream.Height = 480;
// class SharpAvi.KnownFourCCs.Codecs contains FOURCCs for several well-known codecs
// Uncompressed is the default value, just set it for clarity
stream.Codec = KnownFourCCs.Codecs.Uncompressed;
// Uncompressed format requires to also specify bits per pixel
stream.BitsPerPixel = BitsPerPixel.Bpp32;
var frameData = new byte[stream.Width * stream.Height * 4];
foreach (var item in frames)
{
// Say, you have a System.Drawing.Bitmap
Bitmap bitmap = (Bitmap)item.Image;
// and buffer of appropriate size for storing its bits
var buffer = new byte[stream.Width * stream.Height * 4];
var pixelFormat = PixelFormat.Format32bppRgb;
// Now copy bits from bitmap to buffer
var bits = bitmap.LockBits(new Rectangle(0, 0, stream.Width, stream.Height), ImageLockMode.ReadOnly, pixelFormat);
//Marshal.Copy(bits.Scan0, buffer, 0, buffer.Length);
Marshal.Copy(bits.Scan0, buffer, 0, buffer.Length);
bitmap.UnlockBits(bits);
// and flush buffer to encoding stream
stream.WriteFrame(true, buffer, 0, buffer.Length);
}
writer.Close();
}
示例4: StartRecording
private bool StartRecording()
{
int captureWidth = (int)(m_Capture.CaptureBounds.Width * m_Capture.Scale),
captureHeight = (int)(m_Capture.CaptureBounds.Height * m_Capture.Scale),
codecSelectedIndex = comboBox_videoCodec.SelectedIndex,
codecQuality = Convert.ToInt32(textBox_recordQuality.Text);
try
{
m_AviWriter = new AviWriter(m_AviFilePath)
{
FramesPerSecond = m_Capture.FramesPerSecond,
EmitIndex1 = true,
};
if (codecSelectedIndex == 0)
{
m_AviVideoStream = m_AviWriter.AddVideoStream(captureWidth, captureHeight);
}
else if (codecSelectedIndex == 1)
{
m_AviVideoStream = m_AviWriter.AddMotionJpegVideoStream(captureWidth, captureHeight, codecQuality);
}
else
{
var codecs = Mpeg4VideoEncoderVcm.GetAvailableCodecs();
var encoder = new Mpeg4VideoEncoderVcm(captureWidth, captureHeight, m_Capture.FramesPerSecond, 0, codecQuality, codecs[codecSelectedIndex - 2].Codec);
m_AviVideoStream = m_AviWriter.AddEncodingVideoStream(encoder);
}
if (checkBox_recordAudio.Checked)
{
m_AviAudioStream = m_AviWriter.AddAudioStream(m_Recorder.WaveFormat.Channels, m_Recorder.WaveFormat.SampleRate, m_Recorder.WaveFormat.BitsPerSample);
}
}
catch
{
Debug.Log("Failed to Start Recording.");
return false;
}
return true;
}