On 2018-02-28 23:54, James Girotti wrote:
What I believe is happening is that ffmpeg
is single-threading (as it must to reliable transcode), but the thread
migrates between CPU cores. On my system this leads to much lower CPU
clock
speeds, because the up_threshold is never met long enough on a single
core.
And thus transcoding speed is significantly impacted.
James, thank you for the information. I see multiple threads, but the
main thread's CPU core usage is 95%. Now it is clear for me, the
bottleneck in my case is CPU core frequency. I used "top" to monitor
cores's usage and never saw an overutilized core, because ffmpeg's main
thread migrated between CPU cores quick enough.
What I have done to remediate this is to use "taskset" to ensure ffmpeg
runs on a single CPU core. I don't have any specific numbers to back
this
up, but I have been satisfied enough with the results to continue using
it.
I tried setting two or more CPU cores, but generally only set one CPU
core.
I followed your suggestion and got ~5% performance increase in synthetic
test:
$ taskset -c 0 ffmpeg -c:v mpeg4_cuvid -i input.avi -map 0:v:0 -c:v
h264_nvenc -b:v 1024k -f null -
But in the production environment (using a command from my first
message), I actually didn't notice any performance gains.
Thanks!
Garri
_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".