ossrs / srs

SRS is a simple, high-efficiency, real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181.
https://ossrs.io
MIT License
25.37k stars 5.34k forks source link

About deprecated features. Deprecated features that will be removed, please do not use. #1535

Closed winlinvip closed 2 years ago

winlinvip commented 4 years ago

The so-called "no destruction, no establishment" principle, with continuous development, previously commonly used technologies may no longer be commonly used, and some features may be eliminated during major version updates. SRS's plan for eliminating features is:

  1. First, mark it as Deprecated, not recommended for use, and describe in the Features and this issue why it is marked as Deprecated.
  2. The Deprecated feature will still be maintained in a major version, for example, if HDS is Deprecated in SRS2, it will still be retained and maintained in SRS3, but will be removed in SRS4.

If users still need to continue using these Deprecated features, they can choose to:

  1. Fork the SRS repository and revert the corresponding commit yourself. We will provide the commit to be deleted, and you just need to revert it in your own fork. However, future merges may cause potential issues that render it unusable.
  2. Reply to this issue, explaining why you need to continue using this feature, describing your use case, and why other technical solutions cannot be chosen. If it is reasonable, we will consider maintaining the Deprecated feature.

Only by continuously subtracting can we do addition more easily.

TRANS_BY_GPT3

winlinvip commented 4 years ago

Deprecate Adobe HDS(f4m)(CN, EN). 3.0.77

The reasons are as follows:

  1. HDS has almost no usage in China, but there is some usage abroad. Due to its limited usage, there are very few updates and the support is not very comprehensive.
  2. New protocols such as DASH, CMAF, or HLS (fMP4) will continue to replace HDS, especially considering that Adobe is not actively updating its media protocol series.

HDS has been deprecated since SRS2 and is expected to be removed in SRS4, with a commit provided at that time.

TRANS_BY_GPT3

winlinvip commented 4 years ago

Deprecated BWT(bandwidth testing)(CN, EN). 3.0.78

BWT speed test is quite an important tool in practice, especially when there is a large area of lag. This is often caused by streaming issues. One important factor in streaming is insufficient bandwidth to the server, such as inadequate user exit or occupation.

After SRS supports speed testing, users can use Flash or tools to test their own bandwidth to the media server. It is more accurate than general speed testing tools, which usually test to their own servers. For example, the speed to Taobao may be fast, but it may not necessarily be fast to your own ECS.

The reasons for deprecation are as follows:

  1. The reason for deprecation is that Flash has been disabled by default, making it inconvenient for users to use the speed test feature. Speed testing is essentially a client-side tool that heavily relies on Flash. If the convenience is lost, this feature becomes less useful.
  2. Currently, HTTP protocol-based speed testing is more comprehensive. It allows for direct speed testing of HTTP-FLV streams on the client-side, enabling measurement of downstream bandwidth. Additionally, it is possible to deploy HTTP-PUSH-FLV (already supported by SRS) to measure upstream speed using the POST FLV method.

BWT has been deprecated since SRS3 and is expected to be retained in SRS4 but will be removed in SRS5.

TRANS_BY_GPT3

winlinvip commented 4 years ago

Deprecate Adobe FMS/AMS edge token traversing(CN, EN) authentication. 3.0.79

This is a type of authentication method, please refer to the Wiki for more details, mainly used for edge authentication.

The reasons for deprecation are as follows:

  1. Authentication belongs to SRS and external calls, and will be unified into HTTP callback method in the future. It should not support two sets of authentication transmission protocols.
  2. This authentication method is equivalent to forwarding metadata to the origin server within RTMP, using the origin server for authentication. It reuses the architecture of the origin server's edge and does something it shouldn't do, which is considered an unreasonable architecture.

Edge Token Traversing has been deprecated since SRS3 and is expected to be retained in SRS4 but will be removed in SRS5.

TRANS_BY_GPT3

winlinvip commented 4 years ago

Remove srs-librtmp support in SRS.

SRS2 supports exporting client libraries, but this makes the module structure of SRS more complex, as shown in the following figure:

+----------------+-------------------------------------+
| SRS/SRT server |    Programs in Main or Research     |
+----------------+--+------------+---------------------+
|  App(For SRS)     | Modules(1) |  research/librtmp   |
+-------------------+------------+---------------------+
|    Service(C/S apps over ST)   |     srs-librtmp     |
+--------------------------------+---------------------+
|   Protocol Stack(RTMP/HTTP/RTSP/JSON/AMF/Format)     |
+------------------------------------------------------+
|      Kernel(File, Codec, Stream, LB services)        |
+------------------------------------------------------+
|         Core(Macros and very low-level APIs)         |
+------------------------------------------------------+

If the srs-librtmp part is removed, the service layer can be eliminated, and it can be merged either upwards or downwards. The related code in the codebase can also be removed, allowing SRS to focus on the server.

Currently, there is librtmp for the RTMP protocol, so there is actually no need for SRS to provide a separate library as there are no significant differences.

Change reference: https://github.com/ossrs/srs/commit/a3388bf6

TRANS_BY_GPT3

winlinvip commented 3 years ago

RTSP

TRANS_BY_GPT3

winlinvip commented 2 years ago

The HTTP RAW API has been removed in version 4.0. The reason is that complex configurations belong to the business system, and SRS is not suitable for completing business tasks on behalf of users, as it would cause a significant decrease in stability. Please refer to https://github.com/ossrs/srs/issues/2653.

TRANS_BY_GPT3