ossrs / srs

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

Home Page:https://ossrs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FFmepg: Transcode will result in endless ffmpeg process

suzp1984 opened this issue · comments

Describe the bug

Do transcode according to guide: https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-ffmpeg.

If I start a ffmpeg transcode srs process and set the output to same srs process. It will result in endless ffmpeg process being triggered until the system's memory or cpu power exhausted.

Version
SRS 6 or maybe any SRS version support transcode

To Reproduce
Steps to reproduce the behavior:

  1. start srs process: ./objs/srs -c conf/ffmpeg.transcode.conf
  2. publish a rtmp stream: ffmpeg -re -stream_loop -1 -i test.mp4 -vcodec h264 -profile:v baseline -acodec copy -f flv rtmp://localhost/live/livestream
  3. wait and monitor the ffmpeg processes, or check the srs log.
  4. the ffmpeg processes will be started to do transcode and republish the transcoded stream to same srs process, which will trigger another ffmpeg process to do another transcode, dead endless loops.
    e.g. live/livestream_ff will trigger live/livestream_ff_ff;
    live/livestream_ff_ff will trigger live/livestream_ff_ff_ff;
    ... endless;

Expected behavior
the tutorial https://ossrs.net/lts/zh-cn/docs/v4/doc/sample-ffmpeg update, maybe remind the user don't sent the output to same srs process.

Or

refactor the transcode feature, let it only accept certain streams [app]/[stream].

commented

Duplicated to #3516