ossrs / srs

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

HTTP-FLV: The CPU usage is very high, greater than 25% #3963

Open winlinvip opened 4 months ago

winlinvip commented 4 months ago

Describe the bug When streaming to SRS using RTMP and playing back with HTTP-FLV, the CPU utilization is very high, exceeding 25%.

Version 6.0.113

To Reproduce Steps to reproduce the behavior:

  1. Run SRS with:
    env SRS_LISTEN=1935 \
    SRS_DAEMON=off \
    SRS_VHOST_MIN_LATENCY=on \
    SRS_VHOST_PLAY_MW_LATENCY=0 \
    SRS_HTTP_SERVER_ENABLED=on \
    SRS_VHOST_HTTP_REMUX_ENABLED=on \
    SRS_VHOST_HTTP_REMUX_MOUNT=[vhost]/[app]/[stream].flv \
    ./objs/srs -e
  2. Publish by RTMP: ffmpeg -re -i doc/source.flv -c copy -f flv rtmp://localhost/live/livestream
  3. Play by HTTP-FLV: curl http://localhost:8080/live/livestream.flv -o /dev/null
  4. The CPU will greater than 25%.

Expected behavior Without transcoding, the CPU should less than 1%.

Screenshots image

Additional context No such problem if publishing and playing by RTMP, or set SRS_VHOST_PLAY_MW_LATENCY=350

TRANS_BY_GPT4

winlinvip commented 4 months ago

Workaround: If not using WebRTC, set SRS_VHOST_PLAY_MW_LATENCY=100 or higher. Or simply keep the default value, not set this config item.