发现是VideoFileWriter.Open()时 里面width,height这两个参数不能随意指定。
他们的值应该设置成
VideoCaptureDevice.VideoResolution(如果这个值为空系统默认取VideoCaptureDevice.VideoCapabilities[0])
中的FrameSize的Width和Height,其实也就是你的摄像头支持的参数,VideoCaptureDevice.VideoCapabilities
可以获取你的摄像头支持的所有帧的大小和帧率
VideoCapabilities vc = device.VideoResolution;
writer.Open("D:/test.wmv", vc.FrameSize.Width, vc.FrameSize.Height, vc.MaximumFrameRate, VideoCodec.WMV2);
完整代码:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms.Integration;
using Accord.Controls;
using Accord.Video.DirectShow;
using Accord.Video.FFMPEG;
namespace Videos
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private VideoFileWrite