华为云云耀云服务器L实例评测使用 | 通过程序实现直播流自动分段录制
华为云云耀云服务器L实例评测使用 | 通过程序实现直播流自动分段录制
- 1. 准备工作
- 2. 环境搭建
- 3. 心得总结
1. 准备工作
随着云计算时代的进一步深入,越来越多的中小企业企业与开发者需要一款简单易用、高能高效的云计算基础设施产品来支撑自身业务运营和创新开发。基于这种需求,华为云焕新推出华为云云服务器实例新品。
华为云云服务器具有智能不卡顿、价优随心用、上手更简单、管理特省心这四个优点,从而帮您快速上云。
本文将使用华为云云耀云服务器L实例实现一个通过程序实现直播流自动分段录制的小功能。
● 注册华为帐号、开通华为云,并进行实名认证、充值等操作。
● 购买并配置云耀云服务器L实例 ,具体步骤如下官方渠道链接-华为云耀云服务器L实例

云耀云服务器L实例提供了很多的镜像,包括Linux可视化宝塔面板、企业建站系统WordPress、网络统计分析平台Matomo、Docker可视化Portainer、一站式DevOps平台GitLab等,可以根据自己的实际需求进行购买。
单击“去支付”,根据页面提示完成支付:


单击“控制台”,查看已创建的云耀云服务器L实例:

| 型号 | 实例操作系统系统 | CPU | 内存 | 硬盘 |
|---|---|---|---|---|
| 云耀云服务器L实例 | Ubuntu 22.04 server 64bit | 2核 | 2G | 系统盘 40 GiB |
云服务器没有初始密码,在第一次使用云服务器时请先设置密码。密码丢失或密码过期时,也需要通过重置密码获取新的密码
2. 环境搭建
生成ffmpeg运行环境:
root@hcss-ecs-63db:~# apt-get update
root@hcss-ecs-63db:~# apt install ffmpeg
写一个python脚本实现自动分段录制:
root@hcss-ecs-63db:~# mkdir -p /data/record/stream/tsfiles/
root@hcss-ecs-63db:~# mkdir -p /data/record/stream/logs/
root@hcss-ecs-63db:~# vim record.py
import time
import os
import sys
channleurl = sys.argv[1]
segment_time = sys.argv[2]
dstdir = sys.argv[3]def record(url):filepath, tmpfilename = os.path.split(url)shortname, extension = os.path.splitext(tmpfilename)format = "ts"duration_day = 3duration_sec = 3*24*3600filetime = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))print(filetime,tmpfilename,shortname)cmd = "ffmpeg -i " + url + " -map 0 -c copy -f segment -segment_time " + segment_time +" -segment_format ts " + dstdir + shortname + '-' + filetime +"-%03d.ts"try:os.system(cmd)except Exception as e:print(e)
record(channleurl)
测试流地址:rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid
root@hcss-ecs-63db:~# nohup python3 \
record.py \
rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid \
120 \
/data/record/stream/tsfiles/ >> /data/record/stream/logs/liteavdemoplayerstreamid.log 2>&1 &# 每120秒切一个ts片段
root@hcss-ecs-63db:~# ps -ef | grep ffmpeg
root 12248 12247 0 09:58 pts/0 00:00:00 sh -c ffmpeg -i rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid -map 0 -c copy -f segment -segment_time 120 -segment_format ts /data/record/stream/tsfiles/liteavdemoplayerstreamid-20230928095815-%03d.ts
root 12249 12248 2 09:58 pts/0 00:00:00 ffmpeg -i rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid -map 0 -c copy -f segment -segment_time 120 -segment_format ts /data/record/stream/tsfiles/liteavdemoplayerstreamid-20230928095815-%03d.ts
可以看到每120秒切一个ts文件,大小在35M左右,视频流如果一直播放就会一直切
root@hcss-ecs-63db:~# ls -lh /data/record/stream/tsfiles/
total 115M
-rw-r--r-- 1 root root 35M Sep 28 10:00 liteavdemoplayerstreamid-20230928095815-000.ts
-rw-r--r-- 1 root root 33M Sep 28 10:02 liteavdemoplayerstreamid-20230928095815-001.ts
-rw-r--r-- 1 root root 34M Sep 28 10:04 liteavdemoplayerstreamid-20230928095815-002.ts
-rw-r--r-- 1 root root 15M Sep 28 10:05 liteavdemoplayerstreamid-20230928095815-003.ts

停止录制,当然可以写一个cron计划任务
ps -ef|grep ffmpeg |awk '{print $2}'|xargs kill -9
3. 心得总结
华为云云耀云服务器L实例在全国范围内内提供多个数据中心,可以选择最接近您的目标受众的地理位置来减少延迟。这对于流媒体和在线视频服务特别重要。而且华为云云耀云服务器L实例提供了多种操作系统和应用程序的预置镜像,这使得在云主机上安装和配置FFmpeg变得更加简单。总之华为云主机提供了一种高度可扩展、高性能、灵活和安全的环境,非常适合运行FFmpeg以进行视频处理和转码任务。这使得华为云成为许多媒体和视频处理应用程序的理想选择。
相关文章:
华为云云耀云服务器L实例评测使用 | 通过程序实现直播流自动分段录制
华为云云耀云服务器L实例评测使用 | 通过程序实现直播流自动分段录制 1. 准备工作2. 环境搭建3. 心得总结 1. 准备工作 随着云计算时代的进一步深入,越来越多的中小企业企业与开发者需要一款简单易用、高能高效的云计算基础设施产品来支撑自身业务运营和创新开发。基…...
前端教程-webpack
官网 webpack webpack基础 视频教程 尚硅谷Webpack5入门到原理(面试开发一条龙)...
white-space几种属性的用法(处理空格)
white-space:normal 文首的空格忽略,文本内部的换行符自动转成了空格。 white-space:nowrap 不换行,即使超出容器宽度 white-space:pre 与原文本一致,空格和换行符保留 white-space:pre-…...
Linux的历史
Linux的历史 前言: 关于Linux,你可能只是听说过它是一款操作系统,也许你还知道它是开源的,但在日常生活中,你更熟悉的是Windows。 那么我们为什么要了解、学习Linux,看完这一篇,你也许可以从…...
软考高级系统架构设计师系列论文真题八:论企业集成平台的技术与应用
软考高级系统架构设计师系列论文真题八:论企业集成平台的技术与应用 一、论企业集成平台的技术与应用二、找准核心论点三、理论素材准备四、精品范文赏析1.摘要2.正文3.总结软考高级系统架构设计师系列论文之:百篇软考高级架构设计师论文范文软考高级系统架构设计师系列之:论…...
[H5动画制作系列] 路径引导动画 Demo
代码参考1: <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>路径引导动画 Demo1</tit…...
[React] Context上下文的使用
文章目录 1.Context的介绍2.为什么需要Context3.Context的使用 1.Context的介绍 Context旨在为React复杂嵌套的各个组件提供一个生命周期内的统一属性访问对象,从而避免我们出现当出现复杂嵌套结构的组件需要一层层通过属性传递值得问题。 Context是为了提供一个组…...
高云FPGA系列教程(9):cmd-parser串口命令解析器移植
文章目录 @[toc]cmd-parser库简介cmd-parser库源码获取GW1NSR-4C移植cmd-parser实际测试cmd-parse命令解析器优化本文是高云FPGA系列教程的第9篇文章。 上一篇文章介绍片上ARM Cortex-M3硬核处理器串口外设的使用,演示轮询方式和中断方式接收串口数据,并进行回环测试。 本文…...
PHP8的静态变量和方法-PHP8知识详解
我们在上一课程讲到了public、private、protected这3个关键字,今天我们来讲解static关键字,明天再讲解final关键字。 如果不想通过创建对象来调用变量或方法,则可以将该变量或方法创建为静态变量或方法,也就是在变量或方法的前面…...
用AI写文章被百家号封禁
我是卢松松,点点上面的头像,欢迎关注我哦! 千万不要用AI创作,尤其是原文照搬!不要用ai,不要用,不要用!重要的事情说三遍。 近日ID名为“爸爸在家赚钱”用AI写了4-5篇文章投稿在百家号,随后百度就把他帐号…...
JVM--Java类加载器笔记
Java类加载器 代码经过编译变成了字节码打包成 Jar 文件。让 JVM 去加载需要的字节码,变成持久代/元数据区上的 Class 对象,接着执行程序逻辑。 类声明周期和加载过程 步骤:加载->链接(校验->准备->解析)-…...
【在Ubuntu部署Docker项目】— PROJECT#1
一、说明 让我们深入了解 Docker。用docker构建web服务器。我们正在计划开发JavaScript API,建立MySQL数据库,并创建一个 PHP 网站使用 API 服务。Php Node.js Mysql — DockerSeries — Episode#1 二、系统架构概述 我们要构建的容器,是三…...
【学习笔记】LOJ #6240. 仙人掌
毒瘤题😅 简单版本 CF235D Graph Game 首先,考虑建立圆方树,然后对于一个点双(简单环)上的两个点,有两条路径可以到达 和简单版本类似,考虑容斥。即枚举点对 i , j i,j i,j之间 哪些路径是联…...
java通过接口转发文件(上传下载)
java接口转发上传的文件 RequestMapping(value "/XXXX/fileUpload", method RequestMethod.POST) public String getFileUpload2(RequestParam("file") MultipartFile file, HttpServletRequest request) public static String hotMapPost3(String ur…...
Docker-部署docker-compose以及管理服务
部署docker-compose以及管理服务 文章目录 部署docker-compose以及管理服务[TOC] 前言一、docker-compose是什么?1、介绍2、 功能 二、安装docker-compose1.yum直接安装2.二进制安装3.pip安装 三、docker-compose部署服务1.编写docker-compose.yml文件 总结 前言 D…...
Android - Monkey 测试应用出现Crash报错IllegalStateException
问题描述 平时使用Lottie动画都是正常的,没出过这个crash问题,看下的报错信息,代码中文件夹也设置了,没看出来问题。 AndroidRuntime: java.lang.IllegalStateException: You must set an images folder before loading an imag…...
Spring源码分析 事务 实现原理
文章目录 什么是事务Spring事务管理Spring事务实现原理事务管理器事务定义事务的开启事务核心方法业务代码使用事务TransactionInterceptor 什么是事务 一般所指的事务是数据库事务,是指一批不可分割的数据库操作序列,也是数据库并发控制的基本单位。其…...
ADS-B及雷达显示终端8.3
新版本功能升级主要有如下: 1、地图更新 在上一版本8.2中使用的高程地图为由SRTM经过地形晕渲后,生成地形图片,然后对图片进行贴图,一一按规定位置、大小将地形图贴至底图上,而后在底图上进行二维矢量地图的绘制,包括…...
第二章:最新版零基础学习 PYTHON 教程(第二节 - Python 输入/输出–从 Python 控制台获取输入)
目录 Python 中的控制台是什么? 接受来自控制台的输入: 1. 将输入类型转换为整数:...
linux安装配置 flume
目录 一 解压安装包 二 配置部署 (1)修改配置 (2)下载工具 (3)创建配置文件 (4)启动监听测试 (5)flume监控文件 一 解压安装包 这里提供了网盘资源 链…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
