你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:基于事件的视频录制和播放

edge icon
或者,请查看在服务中创建视频应用程序下的主题。


注意

我们即将停用 Azure 视频分析器预览版服务,建议你在 2022 年 12 月 1 日前从视频分析器转换你的应用程序。

Azure 视频分析器媒体版不受此停用的影响。 它现在已重命名为 Azure 视频索引器。 单击此处了解详情。

必需操作:若要最大程度地减少工作负载的中断,请在 2022 年 12 月 1 日之前根据此指南中所述的建议从视频分析器转换应用程序。 在 2022 年 12 月 1 日之后,Azure 视频分析器帐户无法再正常使用。 从 2022 年 5 月 2 日起,将无法创建新的视频分析器帐户。

在本教程中,你将了解如何使用 Azure 视频分析器选择性地将实时视频源的部分内容录制到云中的视频分析器。 此用例在本教程中称为基于事件的视频录制 (EVR)。 要录制实时视频的部分内容,你将使用对象检测 AI 模型在视频中查找对象,并仅在检测到某种类型的对象时录制视频剪辑。 你还将了解如何使视频分析器播放录制的视频剪辑。 对于需要保留所需视频剪辑的各种场景,此功能非常有用。

如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

建议的读前准备

在开始之前,请阅读以下文章:

先决条件

本教程的先决条件如下:

设置 Azure 资源

Deploy to Azure

部署过程大约需要 20 分钟。 完成部署后,Azure 订阅中会部署某些 Azure 资源,包括:

  1. 视频分析器帐户 - 此云服务用于注册视频分析器边缘模块,并用于播放录制的视频和视频分析。
  2. 存储帐户 - 用于存储录制的视频和视频分析。
  3. 托管标识 - 这是用户分配的托管标识,用于管理对上述存储帐户的访问。
  4. 虚拟机 - 这是将用作模拟边缘设备的虚拟机。
  5. IoT 中心 - 这充当消息中心,用于在 IoT 应用程序、IoT Edge 模块以及它管理的设备之间进行双向通信。

除上述资源外,还会在存储帐户的“deployment-output”文件共享中创建以下项,用于快速入门和教程:

  • appsettings.json - 此文件包含设备连接字符串和在 Visual Studio Code 中运行示例应用程序所需的其他属性。
  • env.txt - 此文件包含使用 Visual Studio Code 生成部署清单所需的环境变量。
  • deployment.json - 这是模板用于将 Edge 模块部署到模拟边缘设备的部署清单。

提示

如果在创建所有必需的 Azure 资源时遇到问题,请使用此快速入门中的手动步骤。

概述

基于事件的视频录制是指由事件触发的视频录制过程。 可以从以下内容生成该事件:

  • 视频信号本身的处理,例如在视频中检测到移动的对象时。
  • 独立源,例如打开门。

或者,可以仅在推理服务检测到特定事件发生时触发录制。 本教程将使用在高速公路上移动的车辆的视频,并在检测到卡车时录制视频剪辑。

Pipeline

该图以图画形式呈现了管道以及用于完成所需方案的其他模块。 共涉及四个 IoT Edge 模块:

  • IoT Edge 上的视频分析器模块。
  • Edge 模块,它在 HTTP 终结点后面运行 AI 模型。 此 AI 模块使用 YOLOv3 模型,该模型能够检测许多类型的对象。
  • 一个用于筛选对象并对其进行计数的自定义模块,该模块在图中称为对象计数器。 在本教程中,你将生成一个对象计数器并对其进行部署。
  • RTSP 模拟器模块用于模拟 RTSP 摄像机。

如图所示,你将使用管道中的 RTSP 源节点捕获模拟的实时视频(高速公路上的交通流视频),并将该视频发送到两条路径:

  • 第一个路径是 HTTP 扩展节点。 该节点对视频帧进行采样,结果将作为使用 samplingOptions 字段设置的值,然后将这些帧作为图像中继到 AI 模块 YOLOv3,这是一个对象检测器。 该节点接收结果,这些结果是模型检测到的对象(交通流中的车辆)。 然后,HTTP 扩展节点会通过 IoT 中心消息接收器节点向 IoT Edge 中心发布结果。

  • 设置了 objectCounter 模块,目的是从 IoT Edge 中心接收消息,其中包括对象检测结果(交通流中的车辆)。 该模块将检查这些消息,并查找通过设置进行配置的特定类型的对象。 当找到此类对象时,此模块将向 IoT Edge 中心发送消息。 然后,系统将这些“找到对象”消息路由到管道的 IoT 中心源节点。 接收到此类消息后,管道中的 IoT 中心源节点会触发信号入口处理器节点。 然后,信号入口处理器节点会在配置的时间内处于开启状态。 在此持续时间内,视频流会经过入口到达视频接收器节点。 然后,实时流的这一部分将通过视频接收器节点被记录到视频分析器帐户中的视频内。 本教程中将使用的视频是公路交叉口示例视频

在本教程中,将:

  1. 设置开发环境。
  2. 部署所需的 Edge 模块。
  3. 创建和部署实时管道。
  4. 解释结果。
  5. 清理资源。

设置开发环境

获取示例代码

  1. 克隆 AVA C# 示例存储库

  2. 启动 Visual Studio Code,然后打开下载的存储库所在的文件夹。

  3. 在 Visual Studio Code 中,浏览到 src/cloud-to-device-console-app 文件夹,然后创建一个名为 appsettings.json 的文件。 该文件包含运行程序所需的设置。

  4. 浏览到上述设置步骤中创建的存储帐户中的文件共享,并找到“deployment-output”文件共享下的“appsettings.json”文件。 单击该文件,然后点击“下载”按钮。 应在新的浏览器选项卡中打开内容,如下所示:

    {
        "IoThubConnectionString" : "HostName=xxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX",
        "deviceId" : "avasample-iot-edge-device",
        "moduleId" : "avaedge"
    }
    

    借助 IoT 中心连接字符串,可以使用 Visual Studio Code 通过 Azure IoT 中心将命令发送到 Edge 模块。 将上述 JSON 复制到“src/cloud-to-device-console-app/appsettings.json”文件中。

  5. 接下来,浏览到 src/edge 文件夹并创建一个名为 .env 的文件。 此文件包含 Visual Studio Code 用来将模块部署到边缘设备的属性。

  6. 浏览到上述设置步骤中创建的存储帐户中的文件共享,并找到“deployment-output”文件共享下的“env.txt”文件。 单击该文件,然后点击“下载”按钮。 应在新的浏览器选项卡中打开内容,如下所示:

         SUBSCRIPTION_ID="<Subscription ID>"
         RESOURCE_GROUP="<Resource Group>"
         AVA_PROVISIONING_TOKEN="<Provisioning token>"
         VIDEO_INPUT_FOLDER_ON_DEVICE="/home/localedgeuser/samples/input"
         VIDEO_OUTPUT_FOLDER_ON_DEVICE="/var/media"
         APPDATA_FOLDER_ON_DEVICE="/var/lib/videoanalyzer"
         CONTAINER_REGISTRY_USERNAME_myacr="<your container registry username>"
         CONTAINER_REGISTRY_PASSWORD_myacr="<your container registry password>"
    

    将 JSON 从“env.txt”文件复制到“src/edge/.env”文件中 。

连接到 IoT 中心

  1. 在 Visual Studio Code 中,通过选择左下角“Azure IoT 中心”窗格旁边的“更多操作”图标,设置 IoT 中心连接字符串 。 从 src/cloud-to-device-console-app/appsettings.json 文件复制该字符串。

    注意

    系统可能会要求你提供 IoT 中心的内置终结点信息。 若要获取此信息,请在 Azure 门户中导航到 IoT 中心,然后在左侧导航窗格中查找“内置终结点”选项。 单击此处,在“与事件中心兼容的终结点”部分下查找“与事件中心兼容的终结点” 。 复制并使用框中的文本。 终结点将如下所示:Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

  2. 大约 30 秒后,在左下部分刷新 Azure IoT 中心。 你应会看到已部署以下模块的边缘设备 avasample-iot-edge-device

    • Edge 中心(模块名称为“edgeHub”)
    • Edge 代理(模块名称为“edgeAgent”)
    • 视频分析器(模块名称为“avaedge”)
    • RTSP 模拟器(模块名称为“rtspsim”)

准备监视模块

运行本快速入门或教程时,事件将发送到 IoT 中心。 若要查看这些事件,请执行以下步骤:

  1. 在 Visual Studio Code 中打开“资源管理器”窗格,然后在左下角查找“Azure IoT 中心”。

  2. 展开“设备”节点。

  3. 右键单击 avasample-iot-edge-device,并选择“开始监视内置事件终结点”。

    注意

    系统可能会要求你提供 IoT 中心的内置终结点信息。 若要获取此信息,请在 Azure 门户中导航到 IoT 中心,然后在左侧导航窗格中查找“内置终结点”选项。 单击此处,在“与事件中心兼容的终结点”部分下查找“与事件中心兼容的终结点” 。 复制并使用框中的文本。 终结点将如下所示:Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

检查示例文件

在 Visual Studio Code 中,浏览到 src/edge。 你将看到创建的 .env 文件以及一些部署模板文件。 该模板定义了要部署到边缘设备 (Azure Linux VM) 的边缘模块。 .env 文件包含这些模板中所用变量的值,例如视频分析器凭据。

打开 src/edge/deployment.objectCounter.template.json。 “模块”部分下有四个条目,对应于前面“概述”部分中列出的项目

  • avaedge:这是视频分析器模块。
  • yolov3:这是使用 YOLO v3 模型构建的 AI 模块。
  • rtspsim:这是 RTSP 模拟器。
  • objectCounter:这是在来自 yolov3 的结果中查找特定对象的模块。

对于 objectCounter 模块,请参阅用于“image”值的字符串 (${MODULES.objectCounter})。 其基础是有关开发 IoT Edge 模块的教程。 Visual Studio Code 将自动发现 objectCounter 模块的代码位于 src/edge/modules/objectCounter 下。

阅读本部分,了解如何在 IoT Edge 部署清单中声明路由。 然后检查模板 JSON 文件中的路由。 请注意:

注意

检查 objectCounter 模块的所需属性,这些属性设置为查找标记为“卡车”的对象,并且可信度至少为 50%。

接下来,浏览到 src/cloud-to-device-console-app 文件夹。 在这里,你将看到创建的 appsettings.json 文件以及其他一些文件:

  • c2d-console-app.csproj:Visual Studio Code 的项目文件。
  • operations.json:该文件列出了你将运行的不同操作。
  • Program.cs:执行以下操作的示例程序代码:
    • 加载应用设置。

    • 调用视频分析器模块所公开的直接方法。 可以通过调用模块的直接方法来使用该模块分析实时视频流。

    • 暂停以检查“终端”窗口中程序的输出以及 OUTPUT 窗口中模块生成的事件 。

    • 调用直接方法以清理资源。

生成并部署 IoT Edge 部署清单

部署清单定义要部署到边缘设备的模块以及这些模块的配置设置。 请按照以下步骤从模板文件生成清单,然后将其部署到边缘设备。

使用 Visual Studio Code,按照以下说明登录到 Docker。 然后选择“生成并推送 IoT Edge 解决方案”。 在此步骤中使用 src/edge/deployment.objectCounter.template.json。

Build and push IoT Edge solution

此操作会生成用于对象计数的 objectCounter 模块,并将图像推送到 Azure 容器注册表。

  • 检查确认已在 .env 文件中定义 CONTAINER_REGISTRY_USERNAME_myacr 和 CONTAINER_REGISTRY_PASSWORD_myacr 环境变量。

此步骤会在 src/edge/config/deployment.objectCounter.amd64.json 创建 IoT Edge 部署清单。 右键单击该文件,然后选择“为单个设备创建部署”。

Create deployment for single device

如果这是你第一次接触有关视频分析器的教程,Visual Studio Code 将提示你输入 IoT 中心连接字符串。 可以从 appsettings.json 文件中复制字符串。

注意

系统可能会要求你提供 IoT 中心的内置终结点信息。 若要获取此信息,请在 Azure 门户中导航到 IoT 中心,然后在左侧导航窗格中查找“内置终结点”选项。 单击此处,在“与事件中心兼容的终结点”部分下查找“与事件中心兼容的终结点” 。 复制并使用框中的文本。 终结点将如下所示:Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

接下来,Visual Studio Code 会要求你选择 IoT 中心设备。 选择 IoT Edge 设备(应为 avasample-iot-edge-device)。

在此阶段,将启动将边缘模块部署到 IoT Edge 设备的过程。 大约 30 秒后,在 Visual Studio Code 的左下部分刷新 Azure IoT 中心。 你应该会看到已部署六个模块,它们的名称分别为 $edgeAgent、$edgeHub avaedge、rtspsim、yolov3 和 objectCounter。

Four modules deployed

运行程序

  1. 在 Visual Studio Code 中,打开“扩展”选项卡(或按 Ctrl+Shift+X),然后搜索“Azure IoT 中心”。

  2. 右键单击并选择“扩展设置”。

    Extension Settings

  3. 搜索并启用“显示详细消息”。

    Show Verbose Message

  4. 转到 src/cloud-to-device-console-app/operations.json。

  5. 在 pipelineTopologySet 节点下,编辑以下内容:

    "pipelineTopologyUrl" : "https://raw.githubusercontent.com/Azure/video-analyzer/main/pipelines/live/topologies/evr-hubMessage-video-sink/topology.json"

  6. 接下来,在 livePipelineSet 和 pipelineTopologyDelete 节点下,确保 topologyName 的值与上述管道拓扑中的 name 属性的值匹配 :

    "pipelineTopologyName" : "EVRtoVideoSinkOnObjDetect"

  7. 在浏览器中打开管道拓扑,查看 videoName(硬编码为 sample-evr-video)。 对于教程来说,这是可以接受的。 在生产环境中,应注意确保每个唯一的 RTSP 相机都会录制到一个具有唯一名称的视频资源中。

  8. 选择 F5 以启动调试会话。 在“终端”窗口中,你将看到一些输出的消息。

  9. operations.json 文件首先调用 pipelineTopologyList 和 livePipelineList。 如果在先前的快速入门或教程后清理了资源,此操作会返回空列表,然后暂停以便你能够选择 Enter,如下所示:

    --------------------------------------------------------------------------
    Executing operation pipelineTopologyList
    -----------------------  Request: pipelineTopologyList  --------------------------------------------------
    {
      "@apiVersion": "1.1"
    }
    ---------------  Response: pipelineTopologyList - Status: 200  ---------------
    {
      "value": []
    }
    --------------------------------------------------------------------------
    Executing operation WaitForInput
    Press Enter to continue
    
  10. 在“终端”窗口中选择 Enter 后,会执行下一组直接方法调用 :

    • 使用上述 pipelinetopologyUrl 对 GraphTopologySet 的调用

    • 使用以下正文对 livePipelineSet 的调用

      {
        "@apiVersion": "1.1",
        "name": "Sample-Pipeline-1",
        "properties": {
          "topologyName": "EVRtoVideoSinkOnObjDetect",
          "description": "Sample topology description",
          "parameters": [
            {
              "name": "rtspUrl",
              "value": "rtsp://rtspsim:554/media/camera-300s.mkv"
            },
            {
              "name": "rtspUserName",
              "value": "testuser"
            },
            {
              "name": "rtspPassword",
              "value": "testpassword"
            }
          ]
        }
      }
      
    • 对 livePipelineActivate 的调用,用于启动实时管道和视频流

    • 对 livePipelineList 的第二次调用,用于显示实时管道处于运行状态

  11. “终端”窗口中的输出现在会在出现“按 Enter 继续”提示时暂停 。 此时请勿选择 Enter。 向上滚动,查看调用的直接方法的 JSON 响应有效负载。

  12. 如果现在切换到 Visual Studio Code 中的“输出”窗口,则将看到视频分析器模块向 IoT 中心发送的消息。

    下节中讨论了这些消息。

  13. 实时管道将继续运行并录制视频。 RTSP 模拟器不断循环源视频。 若要停止录制,请返回到“终端”窗口并选择 Enter 。 接下来会使用以下方法执行一系列调用,以清理资源:

    • 调用 livePipelineDeactivate 以停用实时管道。
    • 调用 livePipelineDelete 以删除实时管道。
    • 调用 pipelineTopologyDelete 以删除拓扑。
    • 最后调用 GraphTopologyList 以显示列表现在为空。

解释结果

运行实时管道时,视频分析器模块会将某些诊断和操作事件发送到 IoT Edge 中心。 这些事件即你在 Visual Studio Code 的“输出”窗口中看到的消息。 这些消息包含 body 部分和 applicationProperties 部分。 要了解这些部分表示的内容,请参阅创建和读取 IoT 中心消息

在下面的消息中,应用程序属性和正文内容由视频分析器模块进行定义。

诊断事件

MediaSessionEstablished 事件

激活实时管道后,RTSP 源节点尝试连接到在 RTSP 模拟器容器上运行的 RTSP 服务器。 如果成功,它将输出此事件:

[IoTHubMonitor] [9:42:18 AM] Message received from [avasample-iot-edge-device/avaadge]:
{
  "body": {
    "sdp": "SDP:\nv=0\r\no=- 1586450538111534 1 IN IP4 XXX.XX.XX.XX\r\ns=Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server\r\ni=media/camera-300s.mkv\r\nt=0 0\r\na=tool:LIVE555 Streaming Media v2020.03.06\r\na=type:broadcast\r\na=control:*\r\na=range:npt=0-300.000\r\na=x-qt-text-nam:Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server\r\na=x-qt-text-inf:media/camera-300s.mkv\r\nm=video 0 RTP/AVP 96\r\nc=IN IP4 0.0.0.0\r\nb=AS:500\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0029;sprop-parameter-sets=XXXXXXXXXXXXXXXXXXXXXX\r\na=control:track1\r\n"
  },
  "applicationProperties": {
    "dataVersion": "1.0",
    "topic": "/subscriptions/{subscriptionID}/resourceGroups/{resource-group-name}/providers/microsoft.media/videoanalyzers/{ava-account-name}",
    "subject": "/edgeModules/avaedge/livePipelines/Sample-Pipeline-1/sources/rtspSource",
    "eventType": "Microsoft.VideoAnalyzers.Diagnostics.MediaSessionEstablished",
    "eventTime": "2021-04-09T09:42:18.1280000Z"
  }
}
  • 此消息是一个诊断事件 (MediaSessionEstablished)。 它指示 RTSP 源节点(使用者)建立了与 RTSP 模拟器的连接,并开始接收(模拟的)实时馈送。
  • applicationProperties 中的 subject 部分引用生成消息的管道拓扑中的节点。 在本例中,该消息来自 RTSP 源节点。
  • applicationProperties 中的 eventType 部分指示这是诊断事件。
  • eventTime 部分指示事件发生的时间。
  • body 部分包含有关诊断事件的数据,在本例中是 SDP 的详细信息。

操作事件

管道运行一段时间后,最终将从 objectCounter 模块获取事件。

[IoTHubMonitor] [5:53:44 PM] Message received from [avasample-iot-edge-device/objectCounter]:
{
  "body": {
    "count": 2
  },
  "applicationProperties": {
    "eventTime": "2020-05-17T17:53:44.062Z"
  }
}

applicationProperties 部分包含事件时间。 这是 objectCounter 模块观察到来自 yolov3 模块的结果包含相关对象(卡车)的时间。

随着在视频中检测到其他卡车,你会看到显示出更多的此类事件。

RecordingStarted 事件

对象计数器发送事件后,你随即会看到一个类型为 Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingStarted 的事件:

[IoTHubMonitor] [5:53:46 PM] Message received from [avasample-iot-edge-device/avaedge]:
{
  "body": {
    "outputType": "videoName",
    "outputLocation": "sample-evr-video"
  },
  "applicationProperties": {
    "topic": "/subscriptions/{subscriptionID}/resourceGroups/{resource-group-name}/providers/microsoft.media/videoanalyzers/{ava-account-name}",
    "subject": "/edgeModules/avaedge/livePipelines/Sample-Pipeline-1/sinks/videoSink",
    "eventType": "Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingStarted",
    "eventTime": "2021-04-09T09:42:38.1280000Z",
    "dataVersion": "1.0"
  }
}

applicationProperties 中的 subject 部分引用实时管道中的视频接收器节点,该节点生成此消息。 body 部分包含有关输出位置的信息。 在本例中,即要将视频录制到的视频分析器视频资源的名称。

RecordingAvailable 事件

顾名思义,RecordingStarted 事件在录制开始时发送,但媒体数据可能尚未上传到视频资源。 视频接收器节点上传媒体后,将发出类型为 Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingAvailable 的事件:

[IoTHubMonitor] [[9:43:38 AM] Message received from [avasample-iot-edge-device/avaedge]:
{
  "body": {
    "outputType": "videoName",
    "outputLocation": "sample-evr-video"
  },
  "applicationProperties": {
    "topic": "/subscriptions/{subscriptionID}/resourceGroups/{resource-group-name}/providers/microsoft.media/videoanalyzers/{ava-account-name}",
    "subject": "/edgeModules/avaedge/livePipelines/Sample-Pipeline-1/sinks/videoSink",
    "eventType": "Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingAvailable",
    "eventTime": "2021-04-09T09:43:38.1280000Z",
    "dataVersion": "1.0"
  }
}

此事件指示已向视频资源写入足够的数据,播放器或客户端可以开始播放视频。 applicationProperties 中的 subject 部分引用实时管道中的视频接收器节点,该节点生成此消息。 body 部分包含有关输出位置的信息。 在本例中,即要将视频录制到的视频分析器资源的名称。

RecordingStopped 事件

停用实时管道后,视频接收器节点会停止录制媒体。 它发出类型为 Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingStopped 的此事件:

[IoTHubMonitor] [11:33:31 PM] Message received from [avasample-iot-edge-device/avaedge]:
{
  "body": {
    "outputType": "videoName",
    "outputLocation": "sample-evr-video"
  },
  "applicationProperties": {
    "topic": "/subscriptions/{subscriptionID}/resourceGroups/{resource-group-name}/providers/microsoft.media/videoanalyzers/{ava-account-name}",
    "subject": "/livePipelines/Sample-Pipeline-1/sinks/videoSink",
    "eventType": "Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingStopped",
    "eventTime": "2021-04-10T11:33:31.051Z",
    "dataVersion": "1.0"
  }
}

此事件指示录制已停止。 applicationProperties 中的 subject 部分引用实时管道中的视频接收器节点,该节点生成此消息。 body 部分包含有关输出位置的信息。 在本例中,即要将视频录制到的视频分析器资源的名称。

播放录制内容

可通过登录到 Azure 门户并观看视频来检查实时管道创建的视频分析器视频资源。

  1. 打开 Web 浏览器,并转到 Azure 门户。 输入登录到门户所需的凭据。 默认视图是服务仪表板。

  2. 在订阅资源中找到视频分析器帐户,并打开“帐户”窗格。

  3. 在“视频分析器”列表中选择“视频” 。

  4. 你会发现以名称 sample-evr-video 列出的视频。 这是在管道拓扑文件中选择的名称。

  5. 选择视频。

  6. 视频“详细信息”页随即将打开并自动开始播放。

注意

由于视频源是模拟相机源的容器,因此视频中的时间戳与启用和停用实时管道的时间有关。

清理资源

如果你要学习其他快速入门或教程,请保留创建的资源。 否则,请转到 Azure 门户,再转到资源组,选择运行本快速入门所用的资源组,并删除所有资源。

后续步骤