搭建基于H.265编码的RTSP推流云服务器

一、前言
  • 网上能够找到的RTSP流地址,均是基于H.264编码的RTSP流地址,无法测试应用是否可以播放H265实时流
  • 为此,搭建本地的把H.264转码成H.265的RTSP服务器,不管是通过VLC搭建本地RTSP服务器,还是通过FFmpeg搭建本地RTSP服务器,均无法在基于ijkplayer的鸿蒙RTSP播放器上播放
  • 鉴于上述特点,在个别网站中找到基于H.265编码的mp4文件,不再转码,而是直接转为实时RTSP流,经过测试,依然失败
  • 为了验证鸿蒙RTSP播放器是否支持H.265编码的RTSP流,搭建远程RTSP服务器,通过公网IP使得我可以获取远程RTSP流
二、云服务器认识

弹性云服务器(Elastic Cloud Server,ECS)是由CPU、内存、操作系统、云硬盘组成的一种可随时获取、弹性可扩展的云服务器。弹性云服务器购买成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器。

只需要指定CPU、内存、操作系统、规格、登录凭证方式即可获得一台弹性云服务器。

本文以如下配置为例,介绍购买和使用ECS的操作指导。

  • 购买数量:1台
  • 计费方式:包年/包月
  • 规格:s7.xlarge.2(4vCPUs、8GiB内存)
  • 操作系统:Linux
  • 登录凭证:密钥对
三、详细步骤如下:
  1. 华为云平台网站注册账号,选择新用户体验,可以免费体验一个月
  2. 选择FLexus云服务器L实例
  3. 服务器基本属性
config 复制代码
区域:华南-广州 
核心:2核
内存:2GiB
系统盘:40GiB 
流量包:100GB/月
峰值带宽:2Mbit/s 
带宽类型:独享
系统:Ubuntu 20.04 server 64bit
访问密码:先关闭服务器后再重置
  1. 远程服务器的三种登录方式

    1. 使用CloudShell登录(最简单):操作更流畅,命令窗口CLI中的信息支持复制粘贴,支持搜索、浏览输出历史和多终端分区布局
    2. 使用VNC方式登录:不依赖公网IP,通过控制台提供的远程登录功能
    3. 使用SSH密码方式登录Linux云服务器(笔者推荐):可以使用VSCode编辑linux里面的文件
    4. 使用过MacOS系统主机登录Linux云服务器
    5. 使用移动设备登录Linux云服务器
  2. 使用SSH密码方式登录步骤:

    1. 弹性云服务器状态为"运行中"

    2. 弹性云服务器已经绑定弹性公网IP(默认已经配置)

    3. 所在安全组入方向已开放22端口(默认已经开放)

    4. 在云服务器中(使用CloudShell登录)验证22端口是否开放,下图即为成功:

    5. 在VScode中安装Remote SSH

    6. 在VScode中的SSH应用中,通过公网IP进行SSH连接。命令:用户名@服务器IP -p 端口号。比如输入 ssh root@123.123.123.132,直接回车默认访问22端口

    7. 进入配置文件后,点击右下角继续连接即可

    8. 输入密码

    9. 然后在VScode打开一个终端,就可以愉快的使用命令啦,

  3. 使用FFmpeg进行推流

  • 安装FFmpeg

    sudo apt-get update
    sudo apt-get install ffmpeg

  • 查看是否支持H.265编码,看输出是否有libx265

    ffmpeg -codecs | grep libx265

  • 在华为云服务器控制台的安全组中开发目标端口,可以设置8554端口,或者554端口,如果不确定

  • 检查8554端口是否开放

    通过命令,前面检查22端口的时候有用过netstat an | grep 8554

  • 如果端口测试不通过,可以新增一个安全组,暂时允许所有协议端口

  • 使用FFmpeg推流

    ffmpeg -re -i test.mp4 -c:v libx265 -preset veryfast -tune zerolatency -c:a aac -f rtsp rtsp://your_server_ip:8554

    // 参数说明

    • -re:以原始速率读取输入文件。
    • -i test.mp4:指定输入文件,可以直接把win的MP4文件拖动到VSCode展示的linux文件夹中。
    • -c:v libx265:指定视频编码器,也可以把5改成4。
    • -preset veryfast:编码预设,用于平衡编码速度和压缩率。
    • -tune zerolatency:优化延迟。
    • -c:a aac:指定音频编码器。
    • -f rtsp:指定输出格式为RTSP。
    • rtsp://your_server_ip:8554:指定RTSP服务器地址和端口以及流名称,可以是你的公网IP。
  • 客户端连接RTSP服务器,可以使用VLC

    rtsp://your_server_ip:8554

相关推荐
weixin_4426434211 分钟前
数据跨网传输无忧:FileLink打造内外网文件传输的安全桥梁
服务器·网络·安全·filelink内外网文件传输
命里有定数16 分钟前
Ubuntu问题 -- 通过远程修改文件配置ubuntu服务器的静态IP (不需要到服务器现场) (通过NetworkManager)
运维·服务器·tcp/ip·ubuntu·网卡
AI青年志16 分钟前
【linux】服务器加装硬盘后如何将其设置为独立硬盘使用
linux·运维·服务器
安科瑞刘鸿鹏18 分钟前
光伏运维监测系统在“双碳”环境中的应用
运维·服务器·网络·物联网·能源
2301_7757655223 分钟前
网络编程day2.2~day3——TCP并发服务器
运维·服务器
绳全24 分钟前
OAuth2资源服务器白名单接口带token被拦截
java·服务器·spring
Mango00000024 分钟前
SEO网站都用哪里的服务器
运维·服务器
GISer_Jing40 分钟前
Tomcat和Nginx原理说明
服务器·开发语言·javascript
小林熬夜学编程1 小时前
【Linux系统编程】第四十九弹---日志系统构建指南:从基础结构到时间处理与Log类实现
linux·运维·服务器·c语言·开发语言·c++
Jtti3 小时前
Jtti:如何知晓服务器的压力上限?具体的步骤和方法
运维·服务器