一文详解Unity下RTMP推送|轻量级RTSP服务|RTSP|RTMP播放模块说明

news2024/9/21 21:59:17

技术背景

好多开发者,对Unity下的模块,不甚了解,实际上,除了Windows/Linux/Android/iOS Native SDK,大牛直播SDK发布了Unity环境下的RTMP推流|轻量级RTSP服务(Windows平台+Linux平台+Android平台)和RTMP|RTSP直播播放(Windows、Linux、Android和iOS平台全覆盖)低延迟的解决方案。

目前,大牛直播SDK的Unity3D环境下,已覆盖以下SDK:

  •  Windows平台RTMP直播推送SDK(采集Unity窗体、摄像头或屏幕);
  •  Windows平台轻量级RTSP服务SDK(采集Unity窗体、摄像头或屏幕);
  •  Windows平台RTMP|RTSP直播播放SDK;
  •  Linux平台RTMP直播推送SDK(采集Unity窗体、Unity声音);
  •  Linux平台RTMP|RTSP直播播放SDK;
  •  Android平台RTMP直播推送SDK(采集Unity窗体、摄像头、麦克风或Unity声音);
  •  Android平台轻量级RTSP服务SDK(采集Unity窗体、摄像头、麦克风或Unity声音);
  •  Android平台RTMP|RTSP直播播放SDK;
  •  iOS平台RTMP|RTSP直播播放SDK。

模块详解

本文以Windows、Android、iOS平台为例,做个大概说明。

Windows平台RTSP|RTMP播放

  • demo说明:SmartU3dWinPlayer是大牛直播SDK Unity3D Windows平台RTMP/RTSP直播播放端工程,其界面展示了播放相关的操作按钮。
  • 集成说明:需将SmartU3dWinPlayer\Assets\Plugins\x86和x86_64下相关库添加到工程,并添加指定文件,使用大牛直播SDK的app name进行测试,正式授权版按授权app name使用。
  • 调用时序
    • 准备播放:调用OpenPlayer()完成PlayerInit和PlayerOpen操作,设置相关参数和回调,调用PlayerStart启动播放。
    • OpenPlayer实现:进行一些初始化操作,设置事件回调和视频帧回调。
    • Video frame实时处理并绘制:通过回调获取yuv数据及相关信息,进行相关处理和绘制。
    • 停止播放:调用NT_U3D_StopPlay()后,调用NT_U3D_UnInit()。
    • Event回调:处理连接、缓冲、下载速度等相关事件的回调。

Windows平台RTMP推送|轻量级RTSP服务

  • demo说明:SmartU3dWinPublisher是大牛直播SDK Unity3D Windows平台RTMP直播推送SDK Demo工程,界面展示了推送相关的操作按钮和信息。
  • 集成说明:需将相关库添加到工程,并添加指定文件,使用大牛直播SDK的app name进行测试,正式授权版按授权app name使用。
  • 调用时序
    • 基础初始化:设置日志路径并初始化SDK。
    • 调用Open()接口,获取推送实例:通过OpenPublisherHandle()获取推送实例句柄。
    • 初始化参数配置:注意采集unity窗口时的图层模式设置。
    • 数据采集:包括摄像头、屏幕和Unity窗体的数据采集,以及Unity的AudioClip数据采集。
    • 数据对接:将Unity的视频和音频数据传递给SDK。
    • 本地数据预览:通过StartPreview()和StopPreview()进行本地数据预览及相关处理。
    • 相关event回调处理:处理连接相关的事件回调。
    • 开始推送、停止推送:通过StartPublisher()和StopPublisher()进行推送和停止推送操作。
    • 关闭实例:通过Close()关闭推送实例。

Android平台RTSP|RTMP播放

  • demo说明:SmartU3dAndroidPlayer是大牛直播SDK Unity3D Android平台RTMP/RTSP直播播放端工程。
  • 集成说明:将相关库和文件添加到工程,配置相关权限,修改app - name,正式授权版需设置license key。
  • 调用时序
    • 【最先调用】NT_U3D_Init:player初始化,目前预留。
    • 【正式授权版设置license key】NT_U3D_SetSDKClientKey, 设置正式授权版license,请早于NT_U3D_Open接口调用。
    • 【获得player句柄】NT_U3D_Open,设置上下文信息,返回player句柄。
    • 【设置GameObject】NT_U3D_Set_Game_Object,注册Game Object,用于消息传递。
    • 【设置硬解码】NT_U3D_SetVideoDecoderMode,设置特定机型硬解码播放,如硬解码检测到不支持,切换到软解码。
    • 【audio输出类型】NT_U3D_SetAudioOutputType(),设置音频输出模式。
    • 【缓冲设置】NT_U3D_SetBuffer,设置播放端缓存数据buffer。
    • 【RTSP TCP/UDP设置】NT_U3D_SetRTSPTcpMode,设置TCP/UDP播放模式,注意此接口仅用于RTSP。
    • 【RTSP 超时时间设置】NT_U3D_SetRTSPTimeout,设置RTSP超时时间。
    • 【RTSP TCP/UDP自动切换】NT_U3D_SetRTSPAutoSwitchTcpUdp,设置RTSP TCP/UDP自动切换。
    • 【实时静音 - 可实时调用】NT_U3D_SetMute,设置播放过程中实时静音/取消静音。
    • 【快速启动】NT_U3D_SetFastStartup,设置快速启动后,如果CDN缓存GOP,播放端可快速出帧。
    • 【低延迟模式】NT_U3D_SetPlayerLowLatencyMode,设置低延迟模式。
    • 【视频垂直反转 - 可实时调用】NT_U3D_SetFlipVertical,视频垂直反转。
    • 【视频水平反转 - 可实时调用】NT_U3D_SetFlipHorizontal,视频水平反转。
    • 【视频显示角度设置 - 可实时调用】NT_U3D_SetRotation,支持视频播放view顺时针旋转。
    • 【下载速度回调设置】NT_U3D_SetReportDownloadSpeed,设置下载速度上报, 默认不上报下载速度。
    • 【快照设置】NT_U3D_SetSaveImageFlag,设置是否需要在播放或录像过程中快照。
    • 【快照 - 录像或播放后,可随时调用】NT_U3D_SaveCurImage,播放过程中,根据设置路径和文件名,实时快照。
    • 【快速切换url - 可实时调用】NT_U3D_SwitchPlaybackUrl,快速切换播放url。
    • 【录像设置】NT_U3D_CreateFileDirectory,创建文件路径。
    • 【录像设置】NT_U3D_SetRecorderDirectory,设置文件路径。
    • 【录像设置】NT_U3D_SetRecorderFileMaxSize,设置每个录像文件最大size。
    • 【录像设置】NT_U3D_SetRecorderAudioTranscodeAAC,支持拉取的RTMP/RTSP的PCMA/PCMU/SPEEX音频格式转AAC后录制。
    • 【设置播放或录像URL】NT_U3D_SetUrl,设置播放/录像url。
    • 【播放】NT_U3D_StartPlay,开始播放。
    • 【播放】NT_U3D_GetVideoFrame,获取底层回调的YUV数据。
    • 【播放】NT_U3D_StopPlay,停止播放。
    • 【录像】NT_U3D_StartRecorder,开始录像。
    • 【录像】NT_U3D_StopRecorder,停止录像。
    • 【关闭】NT_U3D_Close, 关闭播放器实例。
    • 【最后调用】NT_U3D_UnInit,UnInit Player,最后调用。
  • 相关实现
    • 初始化播放:完成初始化和参数设定后,调用NT_U3D_StartPlay()实现播放。
    • 停止播放:调用NT_U3D_StopPlay()后,根据情况进行相关处理。
    • 相关Event处理:处理来自Android的事件消息。

Andorid平台RTMP推送|轻量级RTSP服务

  • demo说明:SmartU3dAndroidPublisher是大牛直播SDK Unity3D Android平台RTMP直播推送SDK工程demo,以采集Unity窗体和麦克风、Unity的音频数据为例。
  • 集成说明:将相关库和文件添加到工程,配置相关权限,修改app - name,正式授权版需设置license key。
  • 调用时序
    • 【最先调用】NT_PB_U3D_Init,推送实例初始化,目前预留。
    • 【正式授权版设置license key】NT_PB_U3D_SetSDKClientKey, 设置正式授权版license,请早于NT_PB_U3D_Open接口调用。
    • 【启动麦克风】NT_PB_U3D_StartAudioRecord,请确保sample_rate有效,当前只支持特定采样率和通道数,推荐44100和单通道(1),如需采集麦克风音频,可在Unity动态获取麦克风采集权限。
    • 【停止麦克风】NT_PB_U3D_StopAudioRecord,如启动了麦克风,调用停止推送相关操作之前,把麦克风采集停掉。
    • 【获得推送实例句柄】NT_PB_U3D_Open,设置上下文信息,返回推送实例句柄。
    • 【是否启用麦克风采集】NT_PB_U3D_EnableAudioRecordCapture,设置是否使用麦克风采集的音频。
    • 【设置GameObject】NT_PB_U3D_Set_Game_Object,注册Game Object,用于消息传递。
    • 【设置H.264硬编码】NT_PB_U3D_SetVideoHWEncoder,设置特定机型H.264硬编码。
    • 【设置H.265硬编码】NT_PB_U3D_SetVideoHevcHWEncoder,设置特定机型H.265硬编码。
    • 【设置软编码可变码率编码】NT_PB_U3D_SetSwVBRMode,设置软编码可变码率编码模式。
    • 【设置关键帧间隔】NT_PB_U3D_SetGopInterval,设置关键帧间隔。
    • 【软编码编码码率】NT_PB_U3D_SetSWVideoBitRate,设置软编码编码码率。
    • 【设置帧率】NT_PB_U3D_SetFPS,设置视频帧率。
    • 【设置编码profile】NT_PB_U3D_SetSWVideoEncoderProfile,设置软编码编码profile。
    • 【设置软编码编码速度】NT_PB_U3D_SetSWVideoEncoderSpeed,设置软编码编码速度。
    • 【设置是否混音】NT_PB_U3D_SetAudioMix,设置混音。
    • 【实时静音】NT_PB_U3D_SetMute,设置推送过程中音频实时静音。
    • 【输入音量调节】NT_PB_U3D_SetInputAudioVolume,设置输入音量。
    • 【设置音频编码类型】NT_PB_U3D_SetAudioCodecType,设置音频编码类型,默认AAC编码。
    • 【设置音频编码码率】NT_PB_U3D_SetAudioBitRate,设置音频编码码率, 当前只对AAC编码有效。
    • 【设置speex音频编码质量】NT_PB_U3D_SetSpeexEncoderQuality,设置speex音频编码质量。
    • 【设置音频噪音抑制】NT_PB_U3D_SetNoiseSuppression,设置音频噪音抑制。
    • 【设置音频自动增益控制】NT_PB_U3D_SetAGC,设置音频自动增益控制。
    • 【设置快照flag】NT_PB_U3D_SetSaveImageFlag,设置是否需要在推流或录像过程中快照。
    • 【实时快照】NT_PB_U3D_SaveCurImage,推流或录像过程中快照。
    • 【录像音频控制】NT_PB_U3D_SetRecorderAudio,音频录制开关。
    • 【录像视频控制】NT_PB_U3D_SetRecorderVideo,视频录制开关。
    • 【录像】NT_PB_U3D_CreateFileDirectory,创建录像存储路径。
    • 【录像】NT_PB_U3D_SetRecorderDirectory,设置录像存储路径。
    • 【录像】NT_PB_U3D_SetRecorderFileMaxSize,设置单个录像文件大小。
    • 【数据投递】NT_PB_U3D_OnCaptureVideoI420Data,实时投递YUV数据。
    • 【数据投递】NT_PB_U3D_OnCaptureVideoRGB24Data,实时投递RGB24数据。
    • 【数据投递】NT_PB_U3D_OnCaptureVideoRGBA32Data,实时投递RGBA数据。
    • 【数据投递】NT_PB_U3D_OnPCMData,实时投递PCM数据,数据类型为byte数组。
    • 【数据投递】NT_PB_U3D_OnPCMShortArray,实时投递PCM数据,数据类型short数组。
    • 【数据投递】NT_PB_U3D_OnPCMFloatArray,实时投递PCM数据,数据类型float数组。
    • 【混音数据投递】NT_PB_U3D_OnMixPCMShortArray,传递PCM混音音频数据给SDK, 每10ms音频数据传入一次,数据类型short数组。
    • 【混音数据投递】NT_PB_U3D_OnMixPCMFloatArray,传递PCM混音音频数据给SDK, 每10ms音频数据传入一次,数据类型float数组。
    • 【推送URL】NT_PB_U3D_SetPushUrl,设置推送的RTMP URL。
    • 【开始RTMP推流】NT_PB_U3D_StartPublisher,开始RTMP推流。
    • 【停止RTMP推流】NT_PB_U3D_StopPublisher,停止RTMP推流。
    • 【开始录像】NT_PB_U3D_StartRecorder,开始录像。
    • 【暂停录像】NT_PB_U3D_PauseRecorder,暂停录像。
    • 【停止录像】NT_PB_U3D_StopRecorder,停止录像。
    • 【关闭】NT_U3D_Close, 关闭推送实例。
    • 【最后调用】NT_PB_U3D_UnInit,UnInit推送SDK,最后调用。
  • 相关实现
    • 基础初始化:完成一些初始化和权限设置等工作。
    • OpenPusher实现:调用底层SDK的Open接口创建推送实例。
    • InitAndSetConfig具体实现:完成SDK的一些参数设定工作。
    • Push()封装:获取推送实例句柄后,进行参数设置和数据采集推送。
    • 停止推送:停止推送前进行相关清理工作。
    • 数据采集:包括Unity窗体和AudioClip数据的采集。
    • 数据对接:将Unity的视频和音频数据传递给SDK。
    • 相关event回调处理:处理推送相关的事件回调。

iOS平台RTSP|RTMP播放

  • demo说明:SmartU3diOSPlayer是大牛直播SDK Unity3D iOS平台RTMP/RTSP直播播放端工程。
  • 集成说明:将相关文件拷贝到Assets - > Plugins - > iOS目录,在Unity3D工程中生成xcode工程,并添加相关依赖库和设置。
  • 调用时序
    • 【最先调用】NT_U3D_Init:player初始化,目前预留。
    • 【正式授权版设置license key】NT_U3D_SetSDKClientKey, 设置正式授权版license,请早于NT_U3D_Open接口调用。
    • 【获得player句柄】NT_U3D_Open,设置上下文信息,返回player句柄。
    • 【设置GameObject】NT_U3D_Set_Game_Object,注册Game Object,用于消息传递。
    • 【设置硬解码】NT_U3D_SetVideoDecoderMode,设置是否用硬解码播放,如硬解码不支持,切换到软解码。
    • 【缓冲设置】NT_U3D_SetBuffer,设置播放端缓存数据buffer。
    • 【RTSP TCP/UDP设置】NT_U3D_SetRTSPTcpMode,设置TCP/UDP播放模式,注意此接口仅用于RTSP。
    • 【RTSP 超时时间设置】NT_U3D_SetRTSPTimeout,设置RTSP超时时间。
    • 【RTSP TCP/UDP自动切换】NT_U3D_SetRTSPAutoSwitchTcpUdp,设置RTSP TCP/UDP自动切换。
    • 【实时静音 - 可实时调用】NT_U3D_SetMute,设置播放过程中,实时静音/取消静音。
    • 【快速启动】NT_U3D_SetFastStartup,Set fast startup(快速启动),设置快速启动后,如果CDN缓存GOP,daniulive player可快速出帧。
    • 【低延迟模式】NT_U3D_SetPlayerLowLatencyMode,设置低延迟模式。
    • 【视频垂直反转 - 可实时调用】NT_U3D_SetFlipVertical,视频垂直反转。
    • 【视频水平反转 - 可实时调用】NT_U3D_SetFlipHorizontal,视频水平反转。
    • 【视频显示角度设置 - 可实时调用】NT_U3D_SetRotation,支持视频播放view顺时针旋转。
    • 【下载速度回调设置】NT_U3D_SetReportDownloadSpeed,设置下载速度上报, 默认不上报下载速度。
    • 【快照设置】NT_U3D_SetSaveImageFlag,设置是否需要在播放或录像过程中快照。
    • 【快照 - 录像或播放后,可随时调用】NT_U3D_SaveCurImage,播放过程中,根据设置路径和文件名,实时快照。
    • 【快速切换url - 可实时调用】NT_U3D_SwitchPlaybackUrl,快速切换播放url。
    • 【录像设置】NT_U3D_CreateFileDirectory,创建文件路径,注意iOS只提供接口,未提供具体实现。
    • 【录像设置】NT_U3D_SetRecorderDirectory,设置文件路径。
    • 【录像设置】NT_U3D_SetRecorderFileMaxSize,设置每个录像文件最大size。
    • 【录像设置】NT_U3D_SetRecorderAudioTranscodeAAC,支持拉取的RTMP/RTSP的PCMA/PCMU/SPEEX音频格式转AAC后录制。
    • 【设置播放或录像URL】NT_U3D_SetUrl,设置播放/录像url。
    • 【播放】NT_U3D_StartPlay,开始播放。
    • 【播放】NT_U3D_GetVideoFrame,获取底层回调的YUV数据。
    • 【播放】NT_U3D_StopPlay,停止播放。
    • 【录像】NT_U3D_StartRecorder,开始录像。
    • 【录像】NT_U3D_StopRecorder,停止录像。
    • 【关闭】NT_U3D_Close, 关闭播放器实例。

总结

大牛直播 SDK发布的Unity3D 的跨平台低延迟直播SDK,它支持 Windows、Linux、Android 和 iOS 平台。

在 Windows 平台上,它包括播放端和推送端 SDK。播放端 SDK 可以在 Unity 环境下实现跨平台低延迟的 RTMP|RTSP直播播放,无需二次封装,调用时序可参照 Windows C# 调用 SDK 调用说明。推送端 SDK 可以将 Unity 的窗口、摄像头或整个屏幕作为数据源,将 Unity 的 AudioClip 音频、麦克风、扬声器作为音频源进行 RTMP 直播推送。

在 Android 平台上,播放端 SDK 通过一系列接口和参数设置来实现直播播放的各种功能,如初始化、设置 license key、硬解码、音频输出、缓冲、RTSP 设置、实时静音、快速启动、低延迟模式等,并能处理相关事件。推送端 SDK 可以采集 Unity 窗体、麦克风和 Unity 音频等数据进行 RTMP 直播推送,通过设置各种参数和调用相应接口来完成推送的初始化、配置、数据投递和控制等操作。

在 iOS 平台上,播放端 SDK 通过设置相关接口和参数来实现直播播放的功能,如初始化、设置 license key、获得句柄、设置 GameObject、硬解码、缓冲、RTSP 设置、实时静音、快速启动、低延迟模式等,并能进行快照和录像设置。

总的来说,大牛直播 SDK 为开发者在Unity3D 环境中实现直播功能提供了便利,开发者可以根据不同平台的需求进行集成和调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows安装Oracle11gR2(图文教程)

本章教程,记录在Windows10上安装Oracle11gR2过程。 一、下载安装包 通过网盘分享的文件:oracle11g 链接: https://pan.baidu.com/s/15ilciQ5NlKWtClklmdAH_w?pwds4dd 提取码: s4dd 二、下载并解压文件 将网盘中的安装包文件下载到本地,在此之…

谷歌收录查询工具,好用的谷歌收录查询工具应具备的这5个特性

在探讨如何高效利用谷歌收录查询工具以优化网站可见性和搜索引擎排名时,好用这一标准往往涵盖了工具的准确性、易用性、功能全面性以及对搜索引擎算法变化的适应性等多个方面。 1.准确性 首先,一款好用的谷歌收录查询工具必须能够提供高度准确的数…

C Prime Plus 第6章习题

你该逆袭了 红色标注的是:错误的答案 蓝色标注的是:正确的答案 绿色标注的是:做题时有疑问的地方 橙色标注的是:答案中需要着重注意的地方 练习题 一、复习题1、2、3、4、5、我的答案:错误正确答案: 6、7、…

窥探 引用拷贝、浅拷贝、深拷贝 的那些事 (clone版)

谁家玉笛暗飞声 散入春风满洛城 往期回顾✨内部类 目录✨ 引用拷贝 介绍 总结 浅拷贝 介绍 浅拷贝的步骤 深拷贝 介绍 引用拷贝 介绍 引用拷贝就是我们常用的 “赋值” ,只是复制了原对象的引用,即两个对象指向同一块内存堆地址。修改其中的一个对象会影…

【图灵完备 Turing Complete】游戏经验攻略分享 Part.6 处理器架构2 函数

新的架构来了,本游戏的最后一个攻略分享,最后汇编部分无非是对于操作码的熟练,硬件没有问题,那么也就无关痛痒了。 汇编实现,两数相或和两数相与非一起相与即可。 八位异或器,整就完事了。 有手就行。 利…

【梯度下降算法学习笔记】

梯度下降单参数求解 经过之前的学习我们来引入梯度下降的理念 α \alpha α为学习率 w 1 w 初 − α ∂ J ( w ) ∂ w w_1w_初-\alpha\frac{\partial J(w)}{\partial w} w1​w初​−α∂w∂J(w)​ w 2 w 1 − α ∂ J ( w 1 ) ∂ w 1 w_2w_1-\alpha\frac{\partial J(w_1)}…

国庆电影扎堆来袭,AI智能体帮你推荐必看佳片!(附制作教程)

大家好,我是凡人。 今天看到新闻,发现国庆有10部影片要扎堆儿上映,对于选择困难症的我属实有点难选,同时也想避开一些坑省的浪费金钱和时间。 本着不知道就问AI的习惯,想问问大模型怎么看,但做了简单的交…

MySQL 优化器:理解与探秘

在 MySQL 数据库的世界里,优化器扮演着至关重要的角色。它就像是一位幕后的魔法师,默默地为数据库的高效运行贡献着力量。那么,MySQL 优化器究竟是什么?它又是如何工作的呢?让我们一起来揭开它的神秘面纱。 一、MySQL…

行业人工智能研究-Python自监督方式学习图像表示算法

学术界人工智能研究落后于工业界 摘要 行业或工业界在人工智能研究上超出学术界,并占据着大量的计算力,数据集和人才诱人的薪水和明朗的预期吸引大量人才离开学术界,涌入行业或工业界即使,比如Meta开源其人工智能模型&#xff0…

二分查找算法(1) _二分查找_模板

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 二分查找算法(1) _二分查找模板 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记,欢迎大家在评论区交流讨论💌 1. 二…

掌握Android开发新趋势:Jetpack与现代架构技术全解析

随着Android开发技术的不断进步,Jetpack和现代架构技术已成为构建高效、可维护应用的关键。本文将为您介绍一套全面的学习资料,包括大纲、PDF文档、源代码以及学习视频,帮助您深入理解Jetpack核心库、架构组件以及现代开发工具。 内容&#…

linux-基础知识4

网络连接性测试 ping ping可以用来测试本机与目标主机的连通速度网络稳定性 ping -c 5 -s 1024 目标主机ip地址 -c 表示ping包的个数,linux如果缺省-c会一直ping下去,windows平台的选项是-n -s指定ping发送数据的字节数默认是84字节。windows的是-l 没有问题时会之…

如何设计出一个比较全面的测试用例

目录 1. 测试用例的基本要素(不需要执行结果) 2. 测试用例的给我们带来的好处 3. 用例编写步骤 4. 设计测试用例的方法 4.1 基于需求进行测试用例的设计 4.2 具体的设计方法 1.等价类 2.边界值 3.判定表(因果图) 4.正交表法 5.场景设计法 6.错误猜测…

IO流体系(FiletOutputStream)

书写步骤: 1.创建字节输出流对象 细节1:参数是字符串表示的路径或者是File对象都是可以的 细节2:如果文件不存在会创建一个新的文件,但是要保证父级路径是存在的。 细节3:如果文件已经存在,则会清空文件 2.写数据 细节:write方法的参数…

Python | 绘制核密度图

写在前面 台风天,适合敲代码。前两天正好看到一个有意思的核密度图,使用的是seaborn绘制的。之前了解过这个包,但是一致没有去绘制相关的图,这次正好去学习一下相关的函数。 绘制结果如下所示: 主要两个有意思的地方…

二维光场分析

一、单色光波长的复振幅表示 实波函数 复波函数 复振幅 由于时间因子相同,可以用复振幅来描述 光强 1.1 球面波的复振幅(单色点光源发出的光波) 等相位面是同心球面,波矢处处与等相位面垂直,即 是 r = 1 处的振幅 发散球面波: 会聚球面波: <

828华为云征文 | 华为云X实例监控与告警管理详解

前言 随着云计算的飞速发展&#xff0c;越来越多的企业将业务部署在云平台上&#xff0c;云服务器实例的管理变得尤为重要。云实例的稳定性、性能及安全性&#xff0c;直接影响着业务的连续性与用户体验。为了确保这些目标的实现&#xff0c;监控与告警是关键手段。本文将详细…

2024华为杯研赛C题原创python代码+结果表(1-2问)|全部可运行|精美可视化

2024华为杯研赛C题原创python代码结果表&#xff08;1-2问&#xff09;&#xff5c;全部可运行&#xff5c;精美可视化 以下均为python代码&#xff0c;推荐用anaconda中的notebook当作编译环境 第一问&#xff1a; import pandas as pd import numpy as np import matplotl…

pg入门18—如何使用pg gis

1. 下载postgre gis镜像 2. 运行镜像 docker run -p 15432:5432 -d -e POSTGRES_PASSWORDAb123456! postgis/postgis:12-3.4-alpine 3. 使用gis # 进入容器&#xff0c;登录pgdocker exec -it bash# 登录数据库psql -U postgres# 创建数据库CREATE DATABASE mygeotest;# 使用…

初步认识C++模版

前言 在C语言中&#xff0c;我们知道函数的形参需要指定类型&#xff0c;但是在C中&#xff0c;我们可以模版实现各种类型参数的通用函数。 1. 泛型编程 我们通过函数重载实现多种类型的同一作用的函数。如交换函数&#xff1a; void Swap(int& left, int& right) …