码迷,mamicode.com
首页 > 其他好文 > 详细

如何才能拍摄出高清无码?(附源码下载!)

时间:2015-09-17 10:05:31      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

要想拍摄出高清无码,摄像头很关键。

摄像头有两个重要的参数,一个是分辨率,一个是帧频。

附:设备测试demo源码下载

一.笔记本的自带摄像头的参数

技术分享

Size就是摄像头的分辨率,MaxFrameRate是指摄像头采集能达到的最大帧频。

当然,我这个摄像头比较low,录制高清无码肯定是不行的。

二.外接摄像头测出来的参数。

技术分享

附:设备测试demo源码下载  

三.选定摄像头的分辨率和帧频来录制视频 

技术分享 

现在选定的是1280*720,帧频为30fps。

录制得到的视频的参数信息如下:

技术分享

附:视频录制demo源码下载

 

明明摄像头能达到30fps,为什么实际录制的是视频只有13fps呢?

三.实时查看摄像头采集的帧频值

什么方法来做到实时查看摄像头采集达到的帧频值呢?

很简单。

1.先设置一个计数器来记录采集得到的帧数。

2.创建一个轮询线程来显示帧数每秒的增量,即是fps值。

        private ICapturer audioCapturer;//音频采集器
        private ICapturer videoCapturer;//视频采集器
        private VideoFileMaker videoFileMaker;//视频录制器
        private Thread examineFrameCount;//帧数轮询线程
        private int frameCount = 0;//采集得到的图片帧计数
        private int deltaFrameCount = 0;//一段时间内帧数增量
        private int frameRate = 30; // 采集视频的帧频
        private bool sizeRevised = false;// 是否需要将图像帧的长宽裁剪为4的整数倍

视频采集事件处理方法代码:

        void Form1_ImageCaptured(Bitmap img)
        {
            this.frameCount++;
            this.DisplayVideo((Bitmap)img.Clone());

            Bitmap imgRecorded = img;
            if (this.sizeRevised) // 对图像进行裁剪,  MFile要求录制的视频帧的长和宽必须是4的整数倍。
            {
                imgRecorded = ESBasic.Helpers.ImageHelper.RoundSizeByNumber(img, 4);
                img.Dispose();
            }
            this.videoFileMaker.AddVideoFrame(imgRecorded);

            //快速释放内存           
            if (this.frameCount % (2 * this.frameRate) == 0)
            {
                this.frameCount = 0;
                GC.Collect();
            }
        }

轮询方法的代码:

        private void SearchCount(object tag)//轮询方法
        {
            while (true)
            {
                int referenceCount = this.frameCount;
                System.Threading.Thread.Sleep(1000);
                this.deltaFrameCount = this.frameCount - referenceCount;
                this.ShowCount();
            }
        }

这样,我们就能查看摄像头采集的帧频的实时值了。

技术分享

总结: 

摄像头标定的最大帧频,指的是峰值;而录制生成的文件的帧频,指的是均值。而且,摄像头实际能达到的采集帧频与画面的明暗和变化程度都有关。画面越明亮,画面变化程度越小,录制得到的帧频的值越大。

附:视频录制demo源码下载

附:设备测试demo源码下载

 

如何才能拍摄出高清无码?(附源码下载!)

标签:

原文地址:http://www.cnblogs.com/aoyeyuyan/p/4801225.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!