NGINX RTMP HLS origin-edge system with tokens on origin, edge and cache

Job ID: 38992176

Budget: €30 – €250 EUR

I need assistance with configuring an advanced NGINX RTMP setup. Below are the specific requirements I need implemented:

1. Origin Server Authentication System:

The origin server should only accept RTMP streams from users who provide a valid token.

The stream URL format should be: rtmp://server.com/hls/channel?token=j32n4ujn234j3n24j23n4

The token must be generated based on the channel name and a secure hash algorithm to ensure protection.

The system should validate whether the provided token matches the expected token for that specific channel.

This validation must be logic-based and should not rely on a database.

The token should not expire, but it must be unique and tied to the specific channel to prevent unauthorized access.

The platform should accept streams from various encoders such as FFmpeg, RTMPDump, XSplit, and Adobe Flash Media Live Encoder.

2. Edge Server Authentication System:

The origin server must only stream to the designated edge servers, preventing unauthorized users from embedding the origin stream directly in a player.

On the edge servers, implement a secure token system for HLS streaming:

Every time a user attempts to view an HLS stream, they must provide a valid token.

The token should be generated using a secure hash algorithm and must include an expiration time.

If the token is invalid or expired, the user should be blocked from accessing the stream.

3. Optimization for High Viewer Capacity:

Optimize the NGINX RTMP configuration to handle a large number of concurrent viewers with minimal resource usage.

Implement caching.


Deliverables:

A 2 fully configured NGINX RTMP (origin and edge) setup with the described authentication and security features.

Documentation explaining the token generation process for both origin and edge servers.

Recommendations for further optimization and scalability improvements.

Please confirm if you can handle this setup, the estimated time for completion, and any additional details or suggestions you might have to improve this system.

Thank you!
Related categories: PHP Linux Shell Script Nginx Video Streaming