DxPackNet 4.保存音视频为本地avi文件
捕获到了音视频后要保存到本地文件,这是很常见的应用场景,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[]);
microphone = DxFactory.CreateDxCompent<IDxMicrophCapture>();
microphone.AudioCb = auCaptureBufferCB;
}
2.创建avi写入流 打开设备
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
//创建avi文件写入流 第一个参数为-写入文件路径 第二个参数为-是否支持音频写入,true为音/视频,false为只写视频
aviWriter = DxFactory.CreateDxCompent<IAviStreamWriter>("c:\\avicaptest.avi", true);
aviWriter.Width = ;//设置视频宽度
aviWriter.Height = ;//设置视频高度
aviWriter.CompressType = AviVideoCompressType.MicrosoftVideo1; //设置视频压缩格式
aviWriter.Open();//打开写入流
microphone.Open();
microphone.Start();
camCapture.Run();
}
3.在回调中写入音/视频 数据
private void auCaptureBufferCB(byte[] buffer, int length)
{
//写入音频数据
aviWriter.WriteWavBuffer(buffer, length);
}
private void camerasFrameCb(byte[] buffer, int size)
{
//写入视频数据
aviWriter.WriteBmpBuffer(buffer, Math.Max(size, * * ));
}
private void button2_Click(object sender, EventArgs e)
{
button2.Enabled = false;
microphone.Stop();
camCapture.Stop();
aviWriter.Dispose();//写入完了记得关闭流
aviWriter = null;
}
DxPackNet 4.保存音视频为本地avi文件的更多相关文章
- moviepy音视频剪辑:输出文件前预览剪辑和视频帧的preview和imdisplay方法
		
☞ ░ 前往老猿Python博文目录 ░ 一.引言 由于moviepy合成剪辑后,输出需要较多的时间,那么在输出前预览一下有助于提高处理效率.moviepy提供了预览的工具,这个工具是基于pygame ...
 - FFmpeg采集音视频数据命令
		
文章转自:https://www.jianshu.com/p/4709ccbda3f9 1.ffmpeg 把文件当做直播推送至服务器 (RTMP + FLV) ffmpeg - re -i demo. ...
 - flex4+fms3.5+cs4开发实时音视频直播及点播详解
		
开发工具及环境: 1)flash builder4 2)flash cs4 3)flash media server3.5 fms部分 fms是adobe的流媒体服务器,不过是收费的,价格大概是ora ...
 - 个人永久性免费-Excel催化剂功能第83波-遍历文件夹内文件信息特别是图像、音视频等特有信息
		
在过往的功能中,有体现出在Excel上管理文件的极大优势,在文件的信息元数据中,有图片和音视频这两类特有的属性数据,此篇对过往功能的一个补充,特别增加了图片和音视频信息的遍历功能. 使用场景 在文件管 ...
 - PyQt+moviepy音视频剪辑实战文章目录
		
☞ ░ 前往老猿Python博文目录 ░ 本专栏为moviepy音视频剪辑合成相关内容介绍的免费专栏,对应的收费专栏为<moviepy音视频开发专栏>. 一.moviepy基础能力系统介绍 ...
 - JMeter扩展Java请求实现WebRTC本地音视频推流压测脚本
		
WebRTC是Web Real-Time Communication缩写,指网页即时通讯,是一个支持Web浏览器进行实时语音或视频对话的API,实现了基于网页的视频会议,比如声网的Agora Web ...
 - 2┃音视频直播系统之浏览器中通过 WebRTC 拍照片加滤镜并保存
		
一.拍照原理 好多人小时候应该都学过,在几张空白的纸上画同一个物体,并让物体之间稍有一些变化,然后连续快速地翻动这几张纸,它就形成了一个小动画,音视频播放器就是利用这样的原理来播放音视频文件的 播放器 ...
 - IOS 获取设备本地音视频
		
1.检索音视频 PHFetchOptions *allPhotosOptions; @property (nonatomic, strong) PHFetchResult *assetsFetchRe ...
 - 集显也能硬件编码:Intel SDK   && 各种音视频编解码学习详解
		
http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...
 
随机推荐
- 转发:python 装饰器--这篇文章讲的通俗易懂
			
转 http://www.cnblogs.com/wupeiqi/articles/4980620.html 1.必备 #### 第一波 #### def foo(): print 'foo' ...
 - (1-2)SpringCloud:服务的消费者rest+ribbon
			
服务发现的任务是由Eureka客户端完成,而服务的消费任务由Ribbon完成.Ribbon是一个基于HTTP和TCP的客户端负载据衡器,它可以通过客户端中配置ribbonServerList服务端列表 ...
 - 数据存储之HTTP Cookie
			
Cookie (HTTP Cookie) 作用 HTTP本身是无状态的,客户端通过Cookie来存储会话信息 限制 cookie在性质上是绑定在特定域名下的 意思是说当设定了一个cookie之后,再给 ...
 - Servlet--HttpUtils类
			
定义 public class HttpUtils 收集 HTTP Servlet 使用的静态的有效的方法. 方法 1.getRequestURL public static StringBuffer ...
 - shell第一篇
			
前两天不停的再看内核相关的内容,了解内核的形成.内核的执行流程.内核的作用,结果是舍近求远. 其实我只是想了解一下shell的工作,shell与内核有关,但并不需要我么真正去做什么,至少对于我这样额初 ...
 - NFS+sersync+Keepalived高可用方案
			
标签(linux): nfs+keepalived 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 这套解决方法案的优点是配置比较简单.容易上手,缺点是当主NFS ...
 - 企业级Docker私有仓库部署(https)
			
部署环境 Centos7.3 x64 docker-ce-17.06.0 docker-compose-1.15.0 Python-2.7.5(系统默认) 部署目标 使用HTTPS协议 支持Clair ...
 - docker基础及安装
			
Docker介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...
 - Mysql了解及安装
			
1.数据库由两部分来构成的 打开一个连接工具,用工具给MySQL发送命令,实际上是给数据库当中的服务下的命令,在服务当中解析命令,最终将命令转化成对物理库上文件IO的操作. 所以数据库的安装位置有两个 ...
 - template()方法
			
template(id, data)方法: id:必传,渲染模板的id. data:可选,一个Object对象. return:传data—>渲染完成html代码:不传data—>一个渲染 ...