SONiC镜像编译指南(转,参考1)

sonic编译过程 文章目录1.虚拟机选择 1.虚拟机选择 原则上所有的系统都可以编译sonic,此处我们选择centos 7.7,虚拟机的内存空间建议给8G,建议根目录空间有200G(因为在编译的时候) ... 阅读详情

1.准备工作

在一台Linux系统的主机或服务器上安装最新版本的 docker CE,然后再进行接下来的操作。

创建Linux操作系统用户nocsys,且该用户要加入docker 用户组中:

sudo useradd -d /home/nocsys -m -g docker nocsys

设定nocsys用户的密码:

sudo passwd nocsys

编辑 /etc/sudoers ,在最后一行添加:

nocsys ALL=(ALL:ALL) NOPASSWD:ALL

切换到刚才创建的nocsys用户:

su – nocsys

加载内核模块:

sudo modprobe overlay

 

2.从SONiC社区代码库克隆代码

git clone https://github.com/Azure/sonic-buildimage.git

cd sonic-buildimage

切换代码分支。建议选择最近发布的代码分支,比如本文选择截止目前最新的分支201904:

å¨è¿éæå¥å¾çæè¿°
3.修改配置文件rules/config中的参数

将交换机admin用户密码改为nocsys :

将L3 功能改为基于frr :

å¨è¿éæå¥å¾çæè¿°
4.编译交换机NOS镜像

网络良好的情况下,完成下列编译工作大约需要三个小时。如果是克隆代码后的第一次编译,所花时间会更长。

make init

根据交换机型号选择正确的的交换芯片平台(如果不清楚ASIC平台的话,可以去SONiC社区这个网页查找: https://github.com/Azure/SONiC/wiki/Supported-Devices-and-Platforms)
如果是Barefoot交换机,交换平台代码就是 p4。而 broadcom则代表基于博通ASIC的交换机:

make configure PLATFORM=broadcom

编译跟Debian 9 Stretch发行版相关的包:

BLDENV=stretch make stretch

编译最终的SONiC操作系统镜像:

make target/sonic-broadcom.bin

编译完成后在target目录下生成文件名为“sonic-broadcom.bin”的SONiC镜像:

å¨è¿éæå¥å¾çæè¿°

SONiC (7) - SONiC 编译分析 摘要:SONiC构建框架采用GNU Make实现自动化构建,分为后端(Makefile等)和前端(recipe规则)。后端定义通用目标组,前端通过recipe为每个目标定义元数据。构建输出存放在target目录,支持多种目标类型(deb包、Docker镜像等)。调试功能可通过INSTALL_DEBUG_TOOLS=y启用,生成带调试工具的镜像,支持gdb等调试操作。框架提供灵活的目标组管理,支持本地构建、在线获取等多种构建方式,并通过docker-slave环境实现隔离构建和调试。 阅读详情

相关推荐

从编译到排错:一次搞定SAI与SONiC集成的全流程实战记录

本文详细记录了SAI与SONiC集成的全流程实战经验,从编译到排错,涵盖了环境准备、编译技巧、配置优化和故障诊断等关键环节。通过实际案例和解决方案,帮助开发者高效完成SAI与SONiC的集成,避免常见陷阱,提升网络设备部署效率。

weixin_30952535的博客 373

SONiC镜像编译指南

1.准备工作 在一台Linux系统的主机或服务器上安装最新版本的 docker CE,然后再进行接下来的操作。 创建Linux操作系统用户nocsys,且该用户要加入docker 用户组中: sudo useradd -d /home/nocsys -m -g docker nocsys 设定nocsys用户的密码: sudo passwd nocsys 编辑 /etc/sudoers...

筋斗云计算 9031

SONiC (8) - SONiC 之database

本文提出了一种支持多Redis实例的SONiC数据库架构改进方案。针对当前单一Redis实例在高并发写入时成为性能瓶颈的问题,新方案通过配置多个Redis实例实现数据库拆分和资源隔离。测试表明,该方案能提升20%-30%的性能。具体实现包括:1)引入database_config.json配置文件管理多实例;2)改造C++/Python/Golang接口适配新架构;3)新增sonic-db-cli工具;4)优化warm-reboot机制支持实例间数据迁移。该方案已在实验室交换机测试验证,能有效提升系统性能并

qq_49477505的博客 1064

编译SONiC交换机镜像

sonic-buildimage 编译SONiC交换机镜像 描述 以下是关于如何为网络交换机构建(ONIE)兼容网络操作系统(NOS)安装程序镜像的说明,以及如何构建在NOS内运行的Docker镜像。请注意,SONiC镜像是根据每个ASIC平台来构建的。使用相同ASIC平台的交换机共享一个通用镜像。有关支持的交换机和ASIC的列表,请参阅此列表。 硬件 任何服务器都可作为构建映像的服务器。我们使用...

redwingz的博客 6623

联想交换机NE2580O/NE1064TO安装SONIC

如上问题有的来自我自身项目开发,有的收集网站,有的来自读者…如有侵权,立马删除。再者,针对此专栏中部分问题及其问题的解答思路或步骤等,存在少部分搜集于全网社区及人工智能问答等渠道,若最后实在是没能帮助到你,还望见谅!并非所有的解答都能解决每个人的问题,在此希望屏幕前的你能够给予宝贵的理解,而不是立刻指责或者抱怨!如果你有更优解,那建议你出教程写方案,一同学习!共同进步。ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏。

**My Coding Family** 1470

开源网络操作系统sonic编译指南

开源网络操作系统sonic编译指南

编译SONiC交换机镜像(转,参考2)

sonic-buildimage 编译SONiC交换机镜像 描述 以下是关于如何为网络交换机构建(ONIE)兼容网络操作系统(NOS)安装程序镜像的说明,以及如何构建在NOS内运行的Docker镜像。请注意,SONiC镜像是根据每个ASIC平台来构建的。使用相同ASIC平台的交换机共享一个通用镜像。有关支持的交换机和ASIC的列表,请参阅此列表。 硬件 任何服务器都可作为构建映像的服务器。...

~~ LINUX ~~ 2658

sonic-buildimage:为SONiC执行可安装的二进制映像构建的脚本

主人:创新: 赤脚: Broadcom: Mellanox: Nephos: P4: VS: 201911 :Broadcom: Mellanox: VS: 201811年:创新: Broadcom: Mellanox: VS: 201807年:Broadcom: 赤脚: Mellanox: 201803 :博通: Nephos: Marvell: Mellanox: 声音构建图像 构建SONiC交换机映像 描述 以下是有关如何为网络交换机构建兼容的网络操作系统(NOS)安装程序映像以及如何构建在NOS内部运行的docker映像的说明。 请注意,SONiC映像是按ASIC平台构

SONiC系统概要、使用及移植

文档概述 文档目的 本文档从多个方面介绍了SONiC及其移植、安装和使用等。旨在帮助没有接触过SONiC的工程师,快速入门、了解SONiC,并学会移植和简单的使用SONiC。 文档背景 SONiC 是一个为网络设备开发的开源操作系统项目。与ONL一样,SONiC需要通过ONIE环境安装系统到磁盘或者flash分区中。 SONiC简介 SONiC是一个基于Linux的开源的网络操作系统,运行在多个供应商的交换机和ASIC上。SONiC提供一整套的网络功能,例如BGP和RDMA,这些功能已经在一

qq_24993025的博客 1万+

sonic-buildimage:为SONiC执行可安装的二进制映像构建的脚本

静态分析: 大师构建: 202012年建立: 201911建立: 201811版本: 201807建立: 201803建立: 声波构建图像 构建SONiC交换机映像 描述 以下是有关如何为网络交换机构建兼容的网络操作系统(NOS)安装程序映像以及如何构建在NOS内部运行的docker映像的说明。 请注意,SONiC映像是按ASIC平台构建的。 使用相同ASIC平台的交换机共享一个公共映像。 有关支持的开关和ASIC的列表,请参考此 硬件 任何服务器都可以是构建映像服务器。 我们正在使用具有1T硬盘的服务器。 操作系统是Ubuntu 16.04。 先决条件 在主机构建机器中安装pip和jinja,如果j2 / j2cli不可用,请执行以下命令: sudo apt-get install -y python-pip sudo python2 -m pip install -U p

Rocfall安装包&安装教程

Rocfall 第一步:下载安装包 下载路径: 链接:https://pan.baidu.com/s/1Dzvxzv67dSPRi7f7ZT9EeA 提取码:o9pl 第二部:安装 安装包解压 选择part1进行解压 点击Setup.exe启动安装 生成Serial Number 替换启动程序 安装完毕 素材来源于网络(禁止用于商业仅用于完成毕业设计和研究使用) 谢谢! ...

cym的博客 8693

Sonic-net

SONiC(Software for Open Networking in the Cloud),由微软发起的一款开源云网络操作系统,目前主要是应用在白盒交换机上,适用于数据中心、大型企业网络、云计算及边缘计算场景。传统交换网络系统都是基于私有NOS(诸如Cisco IOS、华为VRP)的闭源系统,当用户需要扩展功能,依赖于厂商的支持。【题外: 传统网络厂商其实是不乐意推动SONiC的发展的,奈何需求端强盛。原文 参考:简而言之,言而简之,其重点就是 Docker + Redis;

TzYwsL 897

医院网络设计(完整文档+思科拓扑图)

大家好,我是小华学长,一名计算机领域的博主。经过多年的学习和实践,我积累了丰富的计算机知识和经验,在这里我想与大家分享我的学习心得和技巧,帮助你成为更好的程序员。作为一名计算机博主,我一直专注于编程、算法、软件开发等领域,在这些方面积累了大量的经验。我相信分享是一种双赢的方式,通过分享,我可以帮助他人提升技术水平,同时也能够得到学习交流的机会。在我的文章中,你将会看到我对于各种编程语言、开发工具以及常见问题的解析和分析。我会结合自己的实际项目经验,为你提供实用的解决方案和优化技巧。

qq1325513482的博客 2万+

SONiC(1):运行SWSS测试用例

参考: https://github.com/Azure/sonic-swss/blob/412c5ebd1762f94afc51b1129f54a27a53f132bb/tests/README.md https://github.com/Azure/sonic-swss-common/blob/7ee11792342f2673ea6905952d556e3f9a27234d/README.m...

ljyfree的专栏 1257

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 343

AI测试干货:让大语言模型稳定输出 JSON 的四种实现方案

用大语言模型做测试用例生成、数据提取时,最头疼的就是让它老老实实返回 JSON。你以为它会给你 `{"name":"张三"}`,结果它来一句"好的,这是生成结果:```json...",或者干脆在 JSON 里加注释,直接把你的 `json.loads()` 干崩溃。 模型本质上是个话痨,天生爱解释。但我们要的是结构化数据,不是聊天记录。我整理了四种实战方案,从最简单的提示词技巧到工程化框架,覆盖了从快速验证到生产环境的各种场景。

blues_C的博客 955

sai(switch abstraction interface)集成到SONiC中大致步骤

将SAI封装到SONIC中步骤

YPandy的专栏 2155

SAP 交货成本(运费)

交货成本: 业务场景: 有些产品或供应商,会产生交货成本(运费、关税等) 业务模拟(以运费为例): 1、运费在采购订单体现:计划运费 ME21N创建采购订单,并且包含运费: MIGO收货时: 由上可知,MIGO时运费最终体现在库存(存货)科目中(V),或者价格差异中(S计价时)。 MIRO发票校验: 运费最终体现在单独科目中: 后台配置: 运费在发票时候...

willieyuan的博客 1万+

SONIC 编译指南

最好有可以翻墙的XXX,可以访问国外很多网站 1.1准备工作 1.1.1安装Docker CE 在一台Linux系统的主机或服务器上安装最新版本的 docker CE 如果你之前安装过 Docker(被称为 Docker 或者 Docker-engine)的话,你首先需要卸载它们。 sudo apt-get remove docker docker-engine docker.io ...

~~ LINUX ~~ 3442

【BIM入门实战】Revit创建地形的几种方法及优缺点

Revit在体量和场地选项卡的【地形表面】工具可以创建三维地形,有三种方法:放置点、指定点文件和导入实例文件、倾斜摄影点云技术和InfraWorks地形生成。 文章目录1. 放置点2. 指定点文件3. 导入实例文件4. 倾斜摄影点云技术5. InfraWorks地形生成 1. 放置点 放置点功能位于体量和场地选项卡下地形表面,点开找到放置点,并通过自定义设置点的高程值来创建地形的高程数据。 优点:通过用户自定义高程点来绘制模型,使地形更为精确。 缺点:只适用于面积小的项目,面积太大,人工效率低下。 .

智慧空间实验室 4757

相位偏折PMD全栈技术拆解 | 四步相移解算+梯度积分形貌重建,助力镜面工件微米级缺陷高精度稳定检测

工业精密检测领域中,高反光镜面类工件长期存在检测瓶颈,涵盖汽车高亮车漆、半导体抛光晶圆、光学透镜、精密抛光模具、玻璃盖板等主流产品。传统2D机器视觉仅能识别表面明显污渍、大尺寸破损,完全无法捕捉微米级划痕、凹坑、橘皮、曲面微形变等微观缺陷;常规线激光3D、普通结构光3D检测设备,面对镜面材质会产生严重镜面反射杂光,激光条纹、结构光图案完全失真,必须喷涂显影粉辅助检测,不仅破坏工件表面完整性,还无法适配自动化量产产线,检测效率与良率极低。

getusushu的博客 537

攻克Sonic项目Docker编译难题:彻底解决cgo报错的实战方案

Sonic作为一款高性能JSON序列化/反序列化库([sonic.go](https://link.gitcode.com/i/65967a0e43e9e3ea19741cbd5c047be6)),其底层依赖cgo实现高效的二进制操作。在Docker环境中编译时,常因CGO配置不当导致编译失败。本文基于项目源码分析与实战经验,提供系统化解决方案。 ## 问题定位与常见错误类型 ### 典型错误表...

gitblog_00749的博客 467

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SONiC+P4实践——P4Runtime下发ACL表项

本文详细介绍了如何在SONiC系统中实现P4runtime的部署

qq_53286237的博客 3915

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Go项目Sonic扩展编译问题解决方案

JSON编解码是现代软件开发中的基础技术,其性能直接影响系统吞吐量。通过JIT和SIMD技术,高性能JSON库如Sonic能实现比标准库快2-4倍的编解码速度。这类优化库在微服务架构和数据处理场景中价值显著,特别是在处理Kafka消息或API响应时。然而,高性能往往伴随复杂的依赖关系,本文针对Go项目中常见的Sonic扩展编译问题,从版本冲突、环境配置到Docker化部署,提供系统化解决方案。通过分析Linux/Windows不同环境下的表现差异,结合CGO工具链配置和交叉编译技巧,帮助开发者快速定位并解决

weixin_34216196的博客 340

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: RCU机制简单分析
下一篇: 编译SONiC交换机镜像(转,参考2)
废言Pro
博客等级 码龄16年 1092粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值