.NET Accord和Aforge调用方法WriteVideoFrame报错(参数无效)

在使用.NET Accord和AForge库进行视频处理时遇到WriteVideoFrame报错,原因是VideoFileWriter.Open()方法中width和height参数需设置为摄像头支持的实际分辨率,即VideoCaptureDevice.VideoResolution.FrameSize的Width和Height。通过VideoCaptureDevice.VideoCapabilities可以获取摄像头支持的所有帧大小和帧率。
摘要由CSDN通过智能技术生成

发现是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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值