PingOS服务器系统常见问题总结

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

转载请注明出处:https://blog.csdn.net/impingo
我的开源项目地址:https://github.com/pingostack/pingos
开源项目:https://pingos.io

本篇内容记录大家问的比较多的问题,持续更新…


1. 如何支持H265编码?

PingOS支持H265编码直播和H265编码的mpegts、flv文件录制功能。rtmp和flv默认使用12(十六进制 0x0c)代表h265编码。同时推流工具也要配合修改,使用12做为h265的。
你可以通过HLS、HLS+、http-flv、rtmp、http-ts协议播放h265编码的流,其中http-flv和rtmp需要播放器做特殊改进才能支持,一般桌面版播放器都能直接支持H265编码的HLS和HLS+直播流。
你也可以使用其他的codecid来作为H265编码类型的扩展。配置方式如下:
https://pingos.io/docs/zh/config-core#hevc_codecid
在这里插入图片描述

以ffmpeg推流工具为例,如果你需要能够推送支持h265编码的rtmp流,你需要下载特殊的ffmpeg版本,ffmpeg源码连接:https://github.com/im-pingo/CDN-Union_H265
ffmpeg编译过程可参考ffmpeg官网文档:https://trac.ffmpeg.org/wiki/CompilationGuide/Centos

ffmpeg编译成功后使用ffmpeg推流:

ffmpeg -i input.mp4 -vcodec h265 -acodec aac -f flv rtmp://ip/app/name

2. 如何降低直播延时?

在直播过程中,推流端、服务器端、播放器、网络环境等因素都会影响延时。
对于每个端上的优化措施可以参考以下参数:

2.1 优化推流端

  • h264编码一定不要开启B帧, 解码时B 帧依赖于前后的帧,会增加延迟。
  • h264 编码使用 H.264 baseline profile,减少编码时消耗的时间。
  • 音频尽量使用AAC-LC Codec,这样会减少编码时消耗的时间。
  • 适当调整关键帧间隔(GOP大小),因为前文说过服务器是以GOP个整数倍进行缓存的,如果GOP过大服务器端的缓存也会变大,建议设置为2s(但是同等码率下GOP越小清晰度也会越低,所以建议大家视场景而定,推荐不小于1s)。

以OBS推流工具为例,要想尽量减少延时,可以参考如下配置:

在这里插入图片描述

2.2 优化PingOS服务器配置

对于服务器端来说,可优化的点并不多,无非是对缓存大小进行优化。直接以PingOS服务器为例:

配置项优化项讲解配置示例
cache_time缓存大小以时间为单位的配置项,缓存大于等于整数倍个gop长度的数据,理论上这个值越小延时会越低。如果你不关心播放端的首屏显示的速度,可以将cache_time设置为0,这样服务器就不会缓存任何数据,实时将内容下发。cache_time 0s;
low_latency开关 on/off低延时选项,cache_time大于0时有效,开启后服务器缓存中如果有新的关键帧,则跳过P帧,从新的关键帧处开始分发low_latency on
send_all开关 on/offcache_time大于0时有效,第一次向播放端发送数据时,是否一次性将缓存数据全部下发。如果一次将缓存数据全部下发,则相当于将服务器缓存积累的延时抛给了播放端,这样的话,即使设置了low_latency也没用,因为缓存中已经无数据可跳过。将这个配置设置成false,并且和low_latency配合使用可一定程度上降低延时。send_all

服务器配置示例:

application live {
    live on;
    cache_time 2s;
    low_latency on;
    send_all off;
}

2.3 优化播放器端

播放端的优化因播放器而定,这里以flv.js播放器为例,图中stashInitialSize的值就是播放器缓存大小,可按需调整。
在这里插入图片描述

3. 如何降低HLS直播延时?

关于HLS的延时优化,除了在前文2. 如何降低直播延时?中提到的操作外,服务器端主要是通过降低切片大小来实现。
这里主要介绍三个配置:

hls_fragment 1300ms;
hls_max_fragment 1800ms;
hls_playlist_length 3900ms;
  • hls_fragmenthls_max_fragment配置一起决定了一个ts切片文件的时长,ts文件的时长会小于hls_max_fragment,大于等于hls_fragment。所以适当调整这两个参数能够使ts切片更实时,这里建议hls_max_fragment大于等于2000ms,并且小于2 * hls_fragment。
  • hls_playlist_length设置成hls_fragment的三倍即可。

4. 如何支持拉取rtsp源?

目前PingOS还不支持直接拉取rtsp源,但是可以利用exec_pull配置配合ffmpeg工具拉取rtsp源。
exec_pull配置的作用是允许在第一次有人请求播放某一条直播流的时候PingOS会执行一条Shell命令,你可以在这条Shell命令里执行ffmpeg拉流转推到PingOS的操作。
例如添加下面的配置:

 exec_pull bash -c "ffmepg -i rtsp://$parg_ip/$parg_uri -vcodec copy -acodec aac -f flv rtmp://127.0.0.1/live/$name";

当你向PingOS请求播放http-flv流的时候,PingOS就会触发ffmpeg向rtsp源拉流并且转推到本地。
举个栗子:
播放http-flv流:http://127.0.0.1/flv/cam01?ip=192.168.1.5&uri=/h264/channel1
ffmpeg则会向拉取rtsp流:rtsp://192.168.1.5/h264/channel1,并且将内容推送给PingOS服务器。
关于配置中使用到的$name等变量的含义,可以参考PingOS的官方文档

QQ交流群:697773082

QQ交流群:697773082

pingos:基于NGINXRTMPHTTP-FLVHTTP-TSHLSHLS + DASHH.264H.265AACMP3LiveRecordVODPushPull多个进程动态配置配置变量控制台接口通知 PingOS 依赖构建,并且继承和的nginx-rtmp-module模块。修复arut和AlexWoo版本存在的部分问题外,PingOS在编码和直播协议以及其他方面做了多项功能扩展。 服务器功能 直播协议: RTMP、HTTP(S)-FLV、HTTP(S)-TS、HLS(支持HTTPS)、HLS+(支持HTTPS)、DASH(支持HTTPS)。 音视频编码: H264、H265、MP3、AAC。 直播录像: FLV文件格式和TS文件格式。 GOP缓存: 实现秒开和内存复用。 application支持通配符: “ * ”号通配符实现自动匹配推拉流时使用的application名字,无需累赘的配置。 VHOST功能: 支持配置多个server域名。 控制台接口: 通过HTTP API接口控制推流、拉流以及录像过程。 配置动态加载: 修改配置文件后无需对nginx做任何操作就 立即下载

相关推荐

倾情推荐:PingOS——全能型直播服务器解决方案

[PingOS](https://pingos.io) 是一个强大的开源直播服务器系统,基于 NGINX 构建,集成了 nginx-rtmp-module 的优秀特性并进行了诸多优化。它旨在提供高效、稳定、易扩展的实时流媒体服务,涵盖了从直播协议到编码、再到流量计费等多种功能。无论你是直播行业的初学者还是经验丰富的开发者,PingOS 都将是你理想的合作伙伴。 ### 2、项目技术分析 ###...

gitblog_00024的博客 735

如何用Cookiecutter快速搭建VR/AR项目模板:终极指南

虚拟现实(VR)和增强现实(AR)开发正以前所未有的速度发展,但项目初始化配置往往让开发者头疼不已。幸运的是,Cookiecutter项目模板生成器为这一挑战提供了完美解决方案!🎯 这款强大的命令行工具能够快速创建标准化的VR/AR项目结构,让您专注于核心开发而不是重复的配置工作。 ## 为什么VR/AR开发者需要Cookiecutter? **VR/AR项目复杂性高**,涉及3D模型、交互

gitblog_00096的博客 657

搭建流媒体服务器 PingOS 平台搭建

搭建流媒体服务器 PingOS 平台搭建 https://zhuanlan.zhihu.com/p/124035946 https://www.debuginn.cn/5614.html

sun007700的专栏 874

PingOS:基于NGINX流媒体服务器解决方案

PingOS是一款基于NGINX构建的开源流媒体服务器,它继承并扩展了arut和AlexWoo的nginx-rtmp-module模块。项目主要使用C语言进行开发,提供了丰富的流媒体处理功能,适用于直播和点播场景。 ## 主要编程语言 - C语言 ## 核心功能 - **直播协议支持**:支持RTMP、HTTP(S)-FLV、HTTP(S)-TS、HLS(支持HTTPS)、HLS+(支持H...

gitblog_01021的博客 813

PingOS:构建高效直播服务器的开源利器

在数字化时代,直播已成为信息传播和娱乐的重要形式。为了满足日益增长的直播需求,PingOS应运而生,它是一个基于NGINX的高性能直播服务器项目,旨在为用户提供稳定、高效的直播服务。本文将详细介绍PingOS的项目背景、技术特点、应用场景及其独特优势。 ## 项目介绍 PingOS是一个开源的直播服务器项目,它构建在NGINX之上,并集成了arut和AlexWoo的nginx-rtmp-mod...

gitblog_00791的博客 935

pingosnginx-rtmp-module)获取实时直播数据

原生的rtmp_stat存在很多局限性,pingos使用sys_stat解决了直播信息参数不够详细和多worker进程的获取信息不完整的问题

impingo的博客 2344

PingOS 开源项目常见问题解决方案

PingOS 是一个基于 NGINX 构建的直播服务器解决方案,它继承了 arut 和 AlexWoo 的 nginx-rtmp-module 模块,并在此基础上做了多项功能扩展。PingOS 支持多种直播协议和音视频编码,包括 RTMP、HTTP(S)-FLV、HTTP(S)-TS、HLS、HLS+、DASH 等,并且支持 H264、H265、MP3、AAC 等音视频编码。此外,它还提供了直播录...

gitblog_00851的博客 429

Ubuntu1604 pingOS 快速配置安装

1、下载源码 git clone https://github.com/pingostack/pingos.git 2、快速安装 cd pingos ./release.sh -i 3、启动服务(记得加权限) cd /usr/local/pingos/ ./sbin/nginx 4、ffmpeg推流 ffmpeg -re -i 文件.mp4 -vcodec copy -acodec copy -f flv rtmp://ip地址/live/01 5、操作命令 # 进入到 PingOS

qq_38595610的博客 466

分布式直播系统(二)【搭建单点rtmp\http-flv\hls流媒体服务器

使用nginx-rtmp-module搭建http-flv、rtmp、hls、http-ts、hls+(内存切片或虚拟切片)直播服务器

impingo的博客 1万+

http-flv/http-ts/hls/hls+/rtsp/rtmp直播服务器用它一个就够了

转载请注明出处:https://blog.csdn.net/impingo 项目地址:https://github.com/im-pingo/pingos http-flv直播配置pingos服务器起源版本区别功能对比QQ交流群:697773082 pingos服务器起源 最初我目前所维护的nginx-rtmp-module是在AlexWoo的基础上进一步开发的。 在经过一些列功能迭代后,我独立维...

impingo的博客 4638

探秘PingOS媒体流服务器:打造高效流畅的直播体验

探秘PingOS媒体流服务器:打造高效流畅的直播体验 在数字化时代,媒体流服务已成为连接世界的桥梁。今天,我们要向大家隆重推荐一款前沿的解决方案——PingOS Media Streaming Server,一个专为现代高需求流媒体环境设计的技术平台。尽管本文档最初指向了一个已迁移的仓库地址,但其核心价值在于引导您进入**PingOS**的全新世界。 项目介绍 PingOS Media Strea...

gitblog_00032的博客 382

基于Nginx的媒体服务器技术

国内应用比较多的开源流媒体服务器nginx-rtmp-module一直存在功能少、集群化难度大等问题。在LiveVideoStack线上分享中,PingOS 开源项目组开发工程师、UCloud RTC研发工程师朱建平详细介绍了基于nginx-rtmp-module的PingOS流媒体服务器在http-flv、http-ts、hls+、多进程、转推、回源以及集群化部署方面的技术实现细节。...

LiveVideoStack 583

流媒体服务器_搭建流媒体服务器 PingOS 平台搭建

友情提示:此篇文章大约需要阅读 12分钟15秒,不足之处请多指教,感谢你的阅读。订阅本站近期由于工作原因需要更换公司原有 RTMP 协议推流,由于 Flash 插件今年年底就淘汰使用,并且一直在寻找一种并发好、延时低、同时便于回放功能的应用,在网上找到了基于Nginx + FFmpeg 推流的解决方案,可以实现 HLS 协议推流,看项目介绍可以实现 HLS+ 协议,这个工具安装比较便捷。首先介绍一...

weixin_39864373的博客 537

**探索未来直播领域:Pingos Media Streaming Server——高效灵活的多媒体流解决方案**

探索未来直播领域:Pingos Media Streaming Server——高效灵活的多媒体流解决方案 在这个实时互动日益重要的数字时代,高质量的流媒体服务已成为各种应用的核心需求。今天,我们为您带来了一款开源神器 —— Pingos Media Streaming Server,它基于成熟的nginx-rtmp-module,并经过一系列优化与增强,旨在为企业和个人开发者提供一站式流媒体处理...

gitblog_00865的博客 463

分布式直播系统(十一)【nginx-rtmp-module鉴权接口】

使用pingos媒体服务器快速实现鉴权功能

impingo的博客 3212

LiveVideoStack线上分享第五季(四):基于Nginx的媒体服务器技术

国内应用比较多的开源流媒体服务器有SRS和nginx-rtmp-module,其中nginx-rtmp-module一直以来由于功能少、集群化难度大所诟病。3月8日19:30,Live...

LiveVideoStack 392

分布式直播系统(八)【快速搭建nginx-rtmp HLS录像和回放服务】

一分钟部署HLS录像和点播服务

impingo的博客 6461

分布式直播系统(十二)【nginx-rtmp-module动态转推和动态回源】

转载请注明出处:https://blog.csdn.net/impingo 项目地址:https://github.com/im-pingo/pingos 项目官网:https://pingos.io 目录动态转推 上篇文章分布式直播系统(十一)【nginx-rtmp-module鉴权接口】已经介绍了oclp_play和oclp_publish的鉴权使用方法。这篇文章将介绍如何利用oclp_pu...

impingo的博客 2315
上一篇: 揭秘Mediasoup的进程间管道通讯设计
下一篇: owt(open webrtc tookit)sip开发记录
im-pingo
博客等级 码龄7年 304粉丝 45原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值