

The most important argument of CPUlimit is -l, which allows you to specify the CPU percentage the process will be allowed to use (as its top limit). The CPUlimit tool is designed exactly for this purpose and will effectively work not just for FFmpeg but also for any other CPU intensive process you want to reduce this resource utilization. You can also fiddle with CRF (Constant Rate Factor) encoding, higher bitrates, etc.Īlthough this question is already considered answered, I believe it lacks an answer that doesn't involve tuning the command parameters and yet can be used with other tools or commands and not just FFmpeg. The "veryfast, superfast and ultrafast" h264 presets is a good start to get some performance boost.

When you need to re-encode the incoming stream, you should consider to add some encoding parameters to the command.īy default, ffmpeg tries to match the source parameters and quality, which not always the most optimal in live applications. So your command would look like this: ffmpeg -thread_queue_size 32768 -i " -f hls -c:v copy -c:a copy -hls_time 5 -hls_list_size 5 -hls_allow_cache 0 -hls_flags delete_segments -segment_list_flags +live -hls_base_url "./ts/" -hls_segment_filename "C:\nginx\html\ts\lig-%random%%random%-%%3d.svgz" -y "C:\nginx\html\hls\lig1.m3u8" > log.txt If you want to just copy the stream as is, you should try the streamcopy function: -c:v copy -c:a copyīy copying the incoming streams, you can skip the encoding process entirely. By default, FFmpeg will try to reencode the input, even if you don't use any encoding related parameters.
