srs icon indicating copy to clipboard operation
srs copied to clipboard

SRS is a simple, high-efficiency, real-time video server supporting RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH, and GB28181.

Results 391 srs issues
Sort by recently updated
recently updated
newest added

srs的配置文件是否考虑切换成yaml,毕竟配置文件可能需要被很多文件读取和解析。使用通用的结构。可以方便各种语言直接使用类库读写。 考虑如下场景:srs需要读取其他配置文件的配置项,或者其他组件需要读取srs的配置项。 k8s默认使用yaml格式,spring也支持yaml格式。从业务角度,yaml是比较被广泛使用的配置文件格式(特别是docker内) 比对可以参考wiki https://en.wikipedia.org/wiki/YAML#Comparison_with_JSON 设计目标可以参考https://yaml.org/spec/1.2/spec.html#id2708649 当然,yaml的空格问题必须要借助工具,否则可读性就差了那么点意思。

Feature
Kubernetes

Two questiongs: 1. WebRTC does not work on Edge server? 2. WebRTC also not work on Origin server? How to support cluster for WebRTC? 请教两个关于WebRTC的问题: 1.目前WebRTC是不是并不支持从边缘站回源? 2.目前WebRTC是否并不支持源站集群? 使用RTMP推流,WebRTC播流,目前尝试源站集群,和源站-边缘站两种方式,播放WebRTC时似乎都无法进行回源。

WebRTC

> 注意:提问前,请先看FAQ(Please read FAQ before file an issue) https://github.com/ossrs/srs/issues/2716 **描述(Description)** > 描述你遇到了什么问题(Please description your issue here) 现有源站集群3个节点,A、B、C和一个edge边缘拉流节点。C节点上有一路流在推。 当播放器拉edge边缘节点的流时,第一次正常播放,停止播放后立刻、快速再次拉流,无法播放,SRS日志报错。 但当播放器拉源站集群中的C节点的流时,正常播放,停止播放后立刻、快速再次拉流,却能正常播放,无问题。重复多少次都行。 经过不断的测试发现,播放器在向edge边缘节点拉流时,正常播放且断开后的3秒内要想重新拉流,就会造成拉流失败的问题。 最新版的`srs-server-4.0-b6`经过测试也会出现这个问题。 经过查询issues,以为是#1520,仔细阅读后发现不是。(https://github.com/ossrs/srs/issues/1520) 报错如下: `[2022-02-07 16:34:54.525][Error][109157][t4269891][11] serve error code=2020 : service...

Enhancement
good first issue

我们结构上可能需要做一个非常重要的修改,就是之前SRT和GB,都是转RTMP后转RTC,应该具备直接转的能力。 因为SRT和GB和RTC本质上是RTP的包,所以直接转是更有效的。而RTMP、FLV和HLS是基于帧的协议,他们是类似的,所以转RTMP后转HLS没问题。 也就是基于Packet的协议,应该要能直接转换。而基于Frame的协议可以直接转换。当Packet到Frame时才需要过RTMP。GB和RTC,直接转。SRT和RTC直接转。GB/SRT转HLS,应该GB/SRT转RTMP转HLS。这样SRT可以直接转到RTC,延迟会更低,也更有效。 在实际中发现,低延迟直播,可能SRT更合适,但是播放器只能选择SRT协议,这限制了应用范围。全链路低延迟直播,肯定没法用FLV做低延迟播放器,会有累计延迟。而只能选择RTC播放器,而目前SRT转RTMP再转RTC,延迟很大,链路也很长。 ## SRT SRT每个UDP包,是多个TS包。可能会遇到丢包和乱序,以及重传等问题。 由于TS包能直接转成264的annexb包,因此SRT的UDP包,可以直接转成RTC的RTP包。而丢包、乱序和重传,可以直接对应上。 而FEC会是个问题。 ## GB GB可以是264封装,或者是PS封装,大部分是PS封装。 如果是264封装,则可以直接和RTC的RTP包对应。如果是PS封装,则无法直接转换,需要收到完整的Frame后再转RTP。 > Note: 目前GB是支持RTMP Client,还有RTMP Source直接对接(默认)。 ## RTC RTC的RTP包,里面就是264的raw data,当然也可以是annexb格式的264数据,两种都是可以解析的。 有时候也可以主动把很多小的P帧,打包成一个RTP包,参考: ``` # Whether merge multiple NALUs into...

Enhancement
Feature

Some player start to play from the first ts file, which might be cleanup. It's better to delay cleanup the ts files.

Enhancement

开启SRT和hooks,错误日志如下: ``` docker logs -f srs-server|grep 139ng145 03:33:29.679184/srs*E:SRT.d: SND-DROPPED 4 packets - lost delaying for 1022ms 03:35:23.059938/SRT:RcvQ:worker*E:SRT.c: IPE: ACK node overwritten when acknowledging 1162 (ack extracted: 1004308388) 03:36:52.965435/SRT:RcvQ:worker*E:SRT.c: IPE: ACK...

Only SRS knows how to set the `Cache-Control` for m3u8 and ts.

good first issue

定位到问题是pmt写入信息默认带了视频字段,用ffplay定位到警告。 Could not find codec parameters for stream 1 (Video: h264 ([27][0][0][0] / 0x001B) 查代码发现对应函数 SrsTsPacket::create_pmt ,纯音频情况不应该push_back视频类型; // if h.264 specified, use video to carry pcr. if (vs == SrsTsStreamVideoH264)...

Bug
PullRequest

目前SRS的DEMO和Wiki都偏向于原子能力,如何把原子能力组合成场景,需要单独的DEMO。 一对一视频聊天是比较常用的一个场景,目前SRS的DEMO聊天的业务属性比较少,比如没有房间列表,也没有移动端。 而且目前不能方便的获取这个DEMO,路径比较长,混在Wiki中。 想要这个复刻的请留言,最好能说明下是学习用的,还是打算准备业务上用的。

Solution

This is a feature request for the HTTP 301/302 Redirect that NGINX RTMP Module supports for on_publish. Basically I am requesting to have the on_publish follow a 301/302 redirect to...

API