加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

DxPackNet 4.保存音视频为本地avi文件

发布时间:2020-12-16 08:58:55 所属栏目:asp.Net 来源:网络整理
导读:捕获到了音视频后要保存到本地文件,这是很常见的应用场景,DxPackNet保存视频文件也比较简单 用?IAviStreamWriter ?avi文件写入流即可 1.初始化相关设备,设定好数据捕获的回调函数 DxDeviceCollection cameras; IDxCameraCapture camCapture; IDxMicrophCap

捕获到了音视频后要保存到本地文件,这是很常见的应用场景,DxPackNet保存视频文件也比较简单

用?IAviStreamWriter ?avi文件写入流即可

1.初始化相关设备,设定好数据捕获的回调函数

        DxDeviceCollection cameras;
        IDxCameraCapture camCapture;
        IDxMicrophCapture microphone;
        IAviStreamWriter aviWriter;
        private void Form1_Load(object sender,EventArgs e)
        {
            cameras = DxFactory.CreateDxCompent<DxDeviceCollection>(DxDeviceCollection.ENVIRONMENT_CAMERAS);
            camCapture = DxFactory.CreateDxCompent<IDxCameraCapture>(this,panel1);
            camCapture.FrameCb = camerasFrameCb;
            camCapture.Init(cameras[0]);
            microphone = DxFactory.CreateDxCompent<IDxMicrophCapture>(100);
            microphone.AudioCb = auCaptureBufferCB;
        }

2.创建avi写入流 打开设备

        private void button1_Click(false;
            //创建avi文件写入流 第一个参数为-写入文件路径  第二个参数为-是否支持音频写入,true为音/视频,false为只写视频
            aviWriter = DxFactory.CreateDxCompent<IAviStreamWriter>("c:avicaptest.avi",true);
            aviWriter.Width = 640;设置视频宽度
            aviWriter.Height = 480;设置视频高度
            aviWriter.CompressType = AviVideoCompressType.MicrosoftVideo1; 设置视频压缩格式
            aviWriter.Open();//打开写入流
            microphone.Open();
            microphone.Start();
            camCapture.Run();
        }

3.在回调中写入音/视频 数据

void auCaptureBufferCB(byte[] buffer,1)">int length)
        {
            写入音频数据 
            aviWriter.WriteWavBuffer(buffer,length);  
        }
        void camerasFrameCb( size)
        {
            写入视频数据
            aviWriter.WriteBmpBuffer(buffer,Math.Max(size,640 * 480 * 3));
        }
void button2_Click(;
            microphone.Stop();
            camCapture.Stop();
            aviWriter.Dispose();写入完了记得关闭流
            aviWriter = null;
        }

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读