1x 이상의 속도로 ffmpeg 트랜스코드를 보장하는 방법

1x 이상의 속도로 ffmpeg 트랜스코드를 보장하는 방법

hls를 사용하여 TV를 스트리밍하려고 합니다. 내 설정은 ffmpeg 및 nginx(hls 스트리밍용 nginx-tx 모듈 포함)입니다. 아래 명령을 사용하여 비디오의 높이를 320으로 조정하고 기본값을 사용하여 선명하게 합니다. 아래 명령을 사용하고 있습니다.

ffmpeg -report -f mpegts -i <input> -vf "scale=trunc(oh*a/2)*2:320,unsharp=lx=3:ly=3:la=1.0" -vcodec libx264 -crf 24 -preset medium -acodec aac -b:a 50k -f mpegts <output>

문제는 이 명령이 다른 속도를 제공한다는 것입니다. 처음에는 5x처럼 높게 시작한 다음 0.6x로 느려집니다. 언젠가 다시 시작하면 높게 시작된 다음 속도가 느려지지만 1x 이상으로 유지됩니다. 그렇다면 속도가 항상 1x 이상임을 어떻게 보장할 수 있을까요?

속도가 1x 미만으로 떨어지면 라이브 스트림이 제대로 작동하지 않고 브라우저에서 사용하는 videojs가 계속 버퍼링됩니다.

편집: 또한 3개의 다른 채널을 스트리밍하고 있으므로 ffmpeg 인스턴스가 3개 실행되고 있습니다. 첫 번째는 괜찮습니다. 항상 1x 이상입니다. 그러나 후자는 비결정적 동작(때때로 >1x, 다른 것 <1x 속도)에 문제가 있는 곳입니다.

어떤 아이디어가 있나요?

관련 정보