当前位置: 首页 > news >正文

网站管理员容易做吗数字广东网络建设有限公司官网

网站管理员容易做吗,数字广东网络建设有限公司官网,传媒公司属于什么行业类型,做a短视频网站随着信创国产化浪潮的来临,在国产操作系统上的应用开发的需求越来越多,其中一个就是需要在银河麒麟或统信UOS上实现录制摄像头视频和麦克风声音,将它们录制成一个mp4文件。那么这个要如何实现了? 一. 技术方案 要完成这些功能&a…

随着信创国产化浪潮的来临,在国产操作系统上的应用开发的需求越来越多,其中一个就是需要在银河麒麟或统信UOS上实现录制摄像头视频和麦克风声音,将它们录制成一个mp4文件。那么这个要如何实现了?

一. 技术方案

要完成这些功能,具体来说,需要解决如下几个技术问题:

(1)麦克风数据采集。

(2)摄像头数据采集。

(3)音频数据编码。

(4)视频数据编码。

(5)将编码后的数据按.mp4文件格式写入到文件容器中。

(6)保证音频视频播放的同步。

我们使用跨平台的 .NET Core (C#),跨平台的UI框架Avalonia,再借助 Oraycn.LinuxCapture 和 Oraycn.MFile.NetCore 这两个组件,就很容易采集到麦克风和摄像头的数据,并且将它们编码写入到mp4文件中。

我们先看看录制程序在银河麒麟上的运行效果:

在银河麒麟上运行视频录制程序

两个下拉列表可以选择要使用的麦克风和摄像头设备。

点击“开始”按钮,麦克风和摄像头将开始采集数据,并录制生成mp4文件(在运行目录下)。

点击“结束”按钮,则将完成录制,此时可以打开生成的mp4文件进行播放。

二.具体实现

(1)ICameraCapturer是摄像头视频采集组件;IMicrophoneCapturer是麦克风声音采集组件。

(2)我们可以通过调用CapturerFactory的CreateXXXX方法来创建对应的采集器实例。

(3)得到采集器实例后,调用Start方法,即可开始采集;调用Stop方法,即停止采集。

(4)采集得到的数据,将通过相应的事件(ImageCaptured、AudioCaptured)暴露出来,我们预定这些事件,即可拿到采集的数据。

(5)将拿到的数据喂给VideoFileMaker,VideoFileMaker就会将其编码并写入到mp4文件中。

我们这里列一下核心代码,完整的代码大家可以从文末下载源码进行了解。

创建并启动采集器:

            //摄像头采集器this.cameraCapturer = CapturerFactory.CreateCameraCapturer(cameraIndex, videoSize, frameRate);this.cameraCapturer.ImageCaptured += CameraCapturer_ImageCaptured;this.cameraCapturer.CaptureError += CameraCapturer_CaptureError;//麦克风采集器this.microphoneCapturer = CapturerFactory.CreateMicrophoneCapturer(micIndex);this.microphoneCapturer.AudioCaptured += MicrophoneCapturer_AudioCaptured;this.microphoneCapturer.CaptureError += MicrophoneCapturer_CaptureError;this.microphoneCapturer.Start();this.cameraCapturer.Start();

创建并启动录制器:

            this.videoFileMaker = new VideoFileMaker();this.videoFileMaker.Initialize("test.mp4", VideoCodecType.H264, videoSize.Width, videoSize.Height, frameRate, VideoQuality.High, AudioCodecType.AAC, audioSampleRate, channelCount, true);

将采集到的数据喂给录制器:

    private void CameraCapturer_ImageCaptured(byte[] obj){if (this.isRecording){this.videoFileMaker.AddVideoFrame(obj);}}private void MicrophoneCapturer_AudioCaptured(byte[] obj){if (this.isRecording){this.videoFileMaker.AddAudioFrame(obj);}}

停止录制:

    private void FinishRecorded(object? sender, Avalonia.Interactivity.RoutedEventArgs e){this.RecordState_Changed(false);this.cameraCapturer?.Stop();this.cameraCapturer?.Dispose();this.microphoneCapturer?.Stop();this.microphoneCapturer?.Dispose();this.videoFileMaker?.Close(true);MessageBox.Show("录制完成!", this);}

三. 部署运行

如果要在银河麒麟或统信UOS上运行这里的录制程序,则需要现在目标操作系统上安装.NET Core 3.1。

然后将VS生成目录下的 netcoreapp3.1 文件夹拷贝到目标电脑上,进入netcoreapp3.1文件夹,打开终端,并在终端中输入如下命令:

dotnet Oraycn_Avalonias_RecordDemo.Desktop.dll

回车运行后,就会出现前面截图的UI界面,然后我们就可以录制麦克风摄像头了。

四. 源码下载

Oraycn.Avalonias.RecordDemo.rar

源码中包含的非托管库是X64架构的,如果需要在其它架构的国产芯片上运行该程序,可以联系我获取对应架构的非托管库。

http://www.yayakq.cn/news/76417/

相关文章:

  • 青岛网站建设eoe长春建站模板搭建
  • 网站对齐原则保定做网站公司
  • 怎么学习做网站自己开发一款聊天软件
  • p2p电影网站开发广告竞价
  • 如何建设数据报表网站温州中豪网络科技有限公司
  • 深圳自适应网站建设报价产品网站怎么做
  • 东莞热的建设网站东莞网站哪家好
  • 蒲县网站建设装修公司报价
  • 女与男爱做电影网站免费外贸建站行业好做吗
  • 厦门路桥建设集团有限公司网站网页制作ppt模板
  • 网站建设项目的结论成都花园设计公司
  • 重庆智能网站建设设计福州网站建设嘉艺
  • 给企业做网站的公司西安建设银行手机不用了怎么登陆网站
  • 怎么在58同城上做网站新城免费做网站
  • 公司网站建设制作网站的关键词库怎么做
  • 余姚公司建设网站中小企业融资平台
  • 手机网站 分辨率开发者账号
  • 湖南省房屋和城乡建设部网站怎么自己做网站怎么赚钱
  • 打电话做网站的话术品牌线上推广方式
  • 镇江做网站站酷设计网站官网入口免费
  • 网站的标题怎么做吸引人企业网站的建设思维导图
  • 班级网站html代码iis网站属性里
  • 河南建设网站公司简介如何在vps上建设网站
  • 如何打开网站的源代码网站建设需要怎么做
  • 企业信息化建设网站无锡网站开发定制开发
  • 快速搭建网站框架怎样做网站外部样式
  • 建大仁科公司网站南宁做网约车怎么样
  • 可以做笔试面试题的网站订做网站策划
  • 上海市工商网站官网嘉兴ai人工智能开发网站建设
  • 网站估值做网站包括哪些