Force ffmpeg to use 100% of CPU
Writing many small files is slow. That’s why the CPU isn’t at 100% load, but your hard disk probably is.
That’s of course not referring to writing at 100% possible throughput, but how fast your disk can service requests. Because creating files involves access to many regions of the disk that might be apart quite a bit, your disk’s access latency is the bottleneck here.
There is nothing you can do about this but switching to a SSD or a faster SSD. RAID0 is very unlikely to help with latency-bound loads.
Related videos on Youtube
Hyperion
Updated on September 18, 2022Comments
-
Hyperion over 1 year
I'm using ffmpeg to extract frames from video, but the process is so slow. Looking at CPU usage I see that ffmpeg use only 50% of my CPU. I've tried also to add -threads 4, but it seems it doesn't have any effect. I need to maximize the speed of this process. How can I do it?
Update: So I run a test, I tried first to convert one video alone, having this result:
ffmpeg version N-71959-g9253cc4 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.9.2 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib libavutil 54. 23.101 / 54. 23.101 libavcodec 56. 37.102 / 56. 37.102 libavformat 56. 32.100 / 56. 32.100 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 16.101 / 5. 16.101 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\1.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf55.33.100 Duration: 00:30:23.13, start: 0.000000, bitrate: 573 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 501 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 32 kb/s (default) Metadata: handler_name : SoundHandler Stream #0:2(und): Data: none (rtp / 0x20707472), 26 kb/s (default) Metadata: creation_time : 2014-08-27 16:05:35 handler_name : GPAC ISO Hint Handler Stream #0:3(und): Data: none (rtp / 0x20707472), 7 kb/s (default) Metadata: creation_time : 2014-08-27 16:05:53 handler_name : GPAC ISO Hint Handler [swscaler @ 0000000002e63360] deprecated pixel format used, make sure you did set range correctly Output #0, image2, to 'C:\TEMP\1-%d.jpg': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf56.32.100 Stream #0:0(und): Video: mjpeg, yuvj420p(pc), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc56.37.102 mjpeg Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) Press [q] to stop, [?] for help frame= 15 fps=0.0 q=1.6 size=N/A time=00:00:15.00 bitrate=N/A dup=0 drop=384 frame= 28 fps= 28 q=1.6 size=N/A time=00:00:28.00 bitrate=N/A dup=0 drop=763 frame= 42 fps= 28 q=1.6 size=N/A time=00:00:42.00 bitrate=N/A dup=0 drop=1172 frame= 55 fps= 27 q=1.6 size=N/A time=00:00:55.00 bitrate=N/A dup=0 drop=1529 frame= 67 fps= 27 q=1.6 size=N/A time=00:01:07.00 bitrate=N/A dup=0 drop=1896 frame= 80 fps= 27 q=1.6 size=N/A time=00:01:20.00 bitrate=N/A dup=0 drop=2267 frame= 93 fps= 27 q=1.6 size=N/A time=00:01:33.00 bitrate=N/A dup=0 drop=2651 frame= 106 fps= 26 q=1.6 size=N/A time=00:01:46.00 bitrate=N/A dup=0 drop=3025 frame= 119 fps= 26 q=1.6 size=N/A time=00:01:59.00 bitrate=N/A dup=0 drop=3386 frame= 131 fps= 26 q=1.6 size=N/A time=00:02:11.00 bitrate=N/A dup=0 drop=3757 frame= 144 fps= 26 q=1.6 size=N/A time=00:02:24.00 bitrate=N/A dup=0 drop=4124 frame= 157 fps= 26 q=1.6 size=N/A time=00:02:37.00 bitrate=N/A dup=0 drop=4487 frame= 169 fps= 26 q=1.6 size=N/A time=00:02:49.00 bitrate=N/A dup=0 drop=4852 frame= 182 fps= 26 q=1.6 size=N/A time=00:03:02.00 bitrate=N/A dup=0 drop=5226 frame= 195 fps= 26 q=1.6 size=N/A time=00:03:15.00 bitrate=N/A dup=0 drop=5593 frame= 209 fps= 26 q=1.6 size=N/A time=00:03:29.00 bitrate=N/A dup=0 drop=5990 frame= 222 fps= 26 q=1.6 size=N/A time=00:03:42.00 bitrate=N/A dup=0 drop=6367 frame= 235 fps= 26 q=1.6 size=N/A time=00:03:55.00 bitrate=N/A dup=0 drop=6753 frame= 248 fps= 26 q=1.6 size=N/A time=00:04:08.00 bitrate=N/A dup=0 drop=7131 frame= 261 fps= 26 q=1.6 size=N/A time=00:04:21.00 bitrate=N/A dup=0 drop=7497 frame= 274 fps= 26 q=1.6 size=N/A time=00:04:34.00 bitrate=N/A dup=0 drop=7873 frame= 287 fps= 26 q=1.6 size=N/A time=00:04:47.00 bitrate=N/A dup=0 drop=8255 frame= 300 fps= 26 q=1.6 size=N/A time=00:05:00.00 bitrate=N/A dup=0 drop=8644 frame= 314 fps= 26 q=1.6 size=N/A time=00:05:14.00 bitrate=N/A dup=0 drop=9036 frame= 328 fps= 26 q=1.6 size=N/A time=00:05:28.00 bitrate=N/A dup=0 drop=9438 frame= 340 fps= 26 q=1.6 size=N/A time=00:05:40.00 bitrate=N/A dup=0 drop=9813 frame= 354 fps= 26 q=1.6 size=N/A time=00:05:54.00 bitrate=N/A dup=0 drop=10205 frame= 367 fps= 26 q=1.6 size=N/A time=00:06:07.00 bitrate=N/A dup=0 drop=10585 frame= 380 fps= 26 q=1.6 size=N/A time=00:06:20.00 bitrate=N/A dup=0 drop=10961 frame= 394 fps= 26 q=1.6 size=N/A time=00:06:34.00 bitrate=N/A dup=0 drop=11360 frame= 406 fps= 26 q=1.6 size=N/A time=00:06:46.00 bitrate=N/A dup=0 drop=11712 frame= 420 fps= 26 q=1.6 size=N/A time=00:07:00.00 bitrate=N/A dup=0 drop=12103 frame= 434 fps= 26 q=1.6 size=N/A time=00:07:14.00 bitrate=N/A dup=0 drop=12509 frame= 447 fps= 26 q=1.6 size=N/A time=00:07:27.00 bitrate=N/A dup=0 drop=12888 frame= 460 fps= 26 q=1.6 size=N/A time=00:07:40.00 bitrate=N/A dup=0 drop=13267 frame= 473 fps= 26 q=1.6 size=N/A time=00:07:53.00 bitrate=N/A dup=0 drop=13640 frame= 486 fps= 26 q=1.6 size=N/A time=00:08:06.00 bitrate=N/A dup=0 drop=14036 frame= 500 fps= 26 q=1.6 size=N/A time=00:08:20.00 bitrate=N/A dup=0 drop=14421 frame= 513 fps= 26 q=1.6 size=N/A time=00:08:33.00 bitrate=N/A dup=0 drop=14808 frame= 526 fps= 26 q=1.6 size=N/A time=00:08:46.00 bitrate=N/A dup=0 drop=15197 frame= 540 fps= 26 q=1.6 size=N/A time=00:09:00.00 bitrate=N/A dup=0 drop=15579 frame= 552 fps= 26 q=1.6 size=N/A time=00:09:12.00 bitrate=N/A dup=0 drop=15948 frame= 565 fps= 26 q=1.6 size=N/A time=00:09:25.00 bitrate=N/A dup=0 drop=16321 frame= 579 fps= 26 q=1.6 size=N/A time=00:09:39.00 bitrate=N/A dup=0 drop=16725 frame= 592 fps= 26 q=1.6 size=N/A time=00:09:52.00 bitrate=N/A dup=0 drop=17097 frame= 605 fps= 26 q=1.6 size=N/A time=00:10:05.00 bitrate=N/A dup=0 drop=17462 frame= 618 fps= 26 q=1.6 size=N/A time=00:10:18.00 bitrate=N/A dup=0 drop=17851 frame= 631 fps= 26 q=1.6 size=N/A time=00:10:31.00 bitrate=N/A dup=0 drop=18225 frame= 644 fps= 26 q=1.6 size=N/A time=00:10:44.00 bitrate=N/A dup=0 drop=18607 frame= 657 fps= 26 q=1.6 size=N/A time=00:10:57.00 bitrate=N/A dup=0 drop=18969 frame= 669 fps= 26 q=1.6 size=N/A time=00:11:09.00 bitrate=N/A dup=0 drop=19333 frame= 681 fps= 26 q=1.6 size=N/A time=00:11:21.00 bitrate=N/A dup=0 drop=19681 frame= 693 fps= 26 q=1.6 size=N/A time=00:11:33.00 bitrate=N/A dup=0 drop=20026 frame= 706 fps= 26 q=1.6 size=N/A time=00:11:46.00 bitrate=N/A dup=0 drop=20402 frame= 716 fps= 26 q=1.6 size=N/A time=00:11:56.00 bitrate=N/A dup=0 drop=20691 frame= 726 fps= 26 q=1.6 size=N/A time=00:12:06.00 bitrate=N/A dup=0 drop=20985 frame= 738 fps= 26 q=1.6 size=N/A time=00:12:18.00 bitrate=N/A dup=0 drop=21317 frame= 751 fps= 26 q=1.6 size=N/A time=00:12:31.00 bitrate=N/A dup=0 drop=21692 frame= 763 fps= 26 q=1.6 size=N/A time=00:12:43.00 bitrate=N/A dup=0 drop=22049 frame= 775 fps= 26 q=1.6 size=N/A time=00:12:55.00 bitrate=N/A dup=0 drop=22403 frame= 788 fps= 26 q=1.6 size=N/A time=00:13:08.00 bitrate=N/A dup=0 drop=22764 frame= 801 fps= 26 q=1.6 size=N/A time=00:13:21.00 bitrate=N/A dup=0 drop=23149 frame= 814 fps= 26 q=1.6 size=N/A time=00:13:34.00 bitrate=N/A dup=0 drop=23540 frame= 828 fps= 26 q=1.6 size=N/A time=00:13:48.00 bitrate=N/A dup=0 drop=23937 frame= 841 fps= 26 q=1.6 size=N/A time=00:14:01.00 bitrate=N/A dup=0 drop=24315 frame= 854 fps= 26 q=1.6 size=N/A time=00:14:14.00 bitrate=N/A dup=0 drop=24694 frame= 867 fps= 26 q=1.6 size=N/A time=00:14:27.00 bitrate=N/A dup=0 drop=25071 frame= 881 fps= 26 q=1.6 size=N/A time=00:14:41.00 bitrate=N/A dup=0 drop=25458 frame= 894 fps= 26 q=1.6 size=N/A time=00:14:54.00 bitrate=N/A dup=0 drop=25844 frame= 908 fps= 26 q=1.6 size=N/A time=00:15:08.00 bitrate=N/A dup=0 drop=26240 frame= 923 fps= 26 q=1.6 size=N/A time=00:15:23.00 bitrate=N/A dup=0 drop=26675 frame= 935 fps= 26 q=1.6 size=N/A time=00:15:35.00 bitrate=N/A dup=0 drop=27038 frame= 949 fps= 26 q=1.6 size=N/A time=00:15:49.00 bitrate=N/A dup=0 drop=27431 frame= 961 fps= 26 q=1.6 size=N/A time=00:16:01.00 bitrate=N/A dup=0 drop=27776 frame= 973 fps= 26 q=1.6 size=N/A time=00:16:13.00 bitrate=N/A dup=0 drop=28125 frame= 985 fps= 26 q=1.6 size=N/A time=00:16:25.00 bitrate=N/A dup=0 drop=28477 frame= 998 fps= 26 q=1.6 size=N/A time=00:16:38.00 bitrate=N/A dup=0 drop=28848 frame= 1010 fps= 26 q=1.6 size=N/A time=00:16:50.00 bitrate=N/A dup=0 drop=29211 frame= 1023 fps= 26 q=1.6 size=N/A time=00:17:03.00 bitrate=N/A dup=0 drop=29572 frame= 1035 fps= 26 q=1.6 size=N/A time=00:17:15.00 bitrate=N/A dup=0 drop=29932 frame= 1047 fps= 26 q=1.6 size=N/A time=00:17:27.00 bitrate=N/A dup=0 drop=30294 frame= 1060 fps= 26 q=1.6 size=N/A time=00:17:40.00 bitrate=N/A dup=0 drop=30644 frame= 1072 fps= 26 q=1.6 size=N/A time=00:17:52.00 bitrate=N/A dup=0 drop=31004 frame= 1085 fps= 26 q=1.6 size=N/A time=00:18:05.00 bitrate=N/A dup=0 drop=31368 frame= 1097 fps= 26 q=1.6 size=N/A time=00:18:17.00 bitrate=N/A dup=0 drop=31742 frame= 1110 fps= 26 q=1.6 size=N/A time=00:18:30.00 bitrate=N/A dup=0 drop=32101 frame= 1123 fps= 26 q=1.6 size=N/A time=00:18:43.00 bitrate=N/A dup=0 drop=32493 frame= 1137 fps= 26 q=1.6 size=N/A time=00:18:57.00 bitrate=N/A dup=0 drop=32874 frame= 1150 fps= 26 q=1.6 size=N/A time=00:19:10.00 bitrate=N/A dup=0 drop=33251 frame= 1162 fps= 26 q=1.6 size=N/A time=00:19:22.00 bitrate=N/A dup=0 drop=33626 frame= 1175 fps= 26 q=1.6 size=N/A time=00:19:35.00 bitrate=N/A dup=0 drop=33990 frame= 1188 fps= 26 q=1.6 size=N/A time=00:19:48.00 bitrate=N/A dup=0 drop=34362 frame= 1201 fps= 26 q=1.6 size=N/A time=00:20:01.00 bitrate=N/A dup=0 drop=34739 frame= 1214 fps= 26 q=1.6 size=N/A time=00:20:14.00 bitrate=N/A dup=0 drop=35127 frame= 1228 fps= 26 q=1.6 size=N/A time=00:20:28.00 bitrate=N/A dup=0 drop=35521 frame= 1242 fps= 26 q=1.6 size=N/A time=00:20:42.00 bitrate=N/A dup=0 drop=35916 frame= 1254 fps= 26 q=1.6 size=N/A time=00:20:54.00 bitrate=N/A dup=0 drop=36281 frame= 1267 fps= 26 q=1.6 size=N/A time=00:21:07.00 bitrate=N/A dup=0 drop=36661 frame= 1280 fps= 26 q=1.6 size=N/A time=00:21:20.00 bitrate=N/A dup=0 drop=37017 frame= 1293 fps= 26 q=1.6 size=N/A time=00:21:33.00 bitrate=N/A dup=0 drop=37394 frame= 1306 fps= 26 q=1.6 size=N/A time=00:21:46.00 bitrate=N/A dup=0 drop=37786 frame= 1318 fps= 26 q=1.6 size=N/A time=00:21:58.00 bitrate=N/A dup=0 drop=38142 frame= 1332 fps= 26 q=1.6 size=N/A time=00:22:12.00 bitrate=N/A dup=0 drop=38526 frame= 1346 fps= 26 q=1.6 size=N/A time=00:22:26.00 bitrate=N/A dup=0 drop=38929 frame= 1358 fps= 26 q=1.6 size=N/A time=00:22:38.00 bitrate=N/A dup=0 drop=39303 frame= 1371 fps= 26 q=1.6 size=N/A time=00:22:51.00 bitrate=N/A dup=0 drop=39676 frame= 1384 fps= 26 q=1.6 size=N/A time=00:23:04.00 bitrate=N/A dup=0 drop=40046 frame= 1398 fps= 26 q=1.6 size=N/A time=00:23:18.00 bitrate=N/A dup=0 drop=40438 frame= 1411 fps= 26 q=1.6 size=N/A time=00:23:31.00 bitrate=N/A dup=0 drop=40818 frame= 1424 fps= 26 q=1.6 size=N/A time=00:23:44.00 bitrate=N/A dup=0 drop=41202 frame= 1437 fps= 26 q=1.6 size=N/A time=00:23:57.00 bitrate=N/A dup=0 drop=41589 frame= 1451 fps= 26 q=1.6 size=N/A time=00:24:11.00 bitrate=N/A dup=0 drop=41971 frame= 1463 fps= 26 q=1.6 size=N/A time=00:24:23.00 bitrate=N/A dup=0 drop=42340 frame= 1477 fps= 26 q=1.6 size=N/A time=00:24:37.00 bitrate=N/A dup=0 drop=42724 frame= 1490 fps= 26 q=1.6 size=N/A time=00:24:50.00 bitrate=N/A dup=0 drop=43129 frame= 1503 fps= 26 q=1.6 size=N/A time=00:25:03.00 bitrate=N/A dup=0 drop=43500 frame= 1516 fps= 26 q=1.6 size=N/A time=00:25:16.00 bitrate=N/A dup=0 drop=43869 frame= 1530 fps= 26 q=1.6 size=N/A time=00:25:30.00 bitrate=N/A dup=0 drop=44260 frame= 1543 fps= 26 q=1.6 size=N/A time=00:25:43.00 bitrate=N/A dup=0 drop=44646 frame= 1556 fps= 26 q=1.6 size=N/A time=00:25:56.00 bitrate=N/A dup=0 drop=45033 frame= 1569 fps= 26 q=1.6 size=N/A time=00:26:09.00 bitrate=N/A dup=0 drop=45393 frame= 1582 fps= 26 q=1.6 size=N/A time=00:26:22.00 bitrate=N/A dup=0 drop=45766 frame= 1594 fps= 26 q=1.6 size=N/A time=00:26:34.00 bitrate=N/A dup=0 drop=46139 frame= 1607 fps= 26 q=1.6 size=N/A time=00:26:47.00 bitrate=N/A dup=0 drop=46498 frame= 1620 fps= 26 q=1.6 size=N/A time=00:27:00.00 bitrate=N/A dup=0 drop=46874 frame= 1633 fps= 26 q=1.6 size=N/A time=00:27:13.00 bitrate=N/A dup=0 drop=47247 frame= 1645 fps= 26 q=1.6 size=N/A time=00:27:25.00 bitrate=N/A dup=0 drop=47609 frame= 1659 fps= 26 q=1.6 size=N/A time=00:27:39.00 bitrate=N/A dup=0 drop=48000 frame= 1671 fps= 26 q=1.6 size=N/A time=00:27:51.00 bitrate=N/A dup=0 drop=48362 frame= 1684 fps= 26 q=1.6 size=N/A time=00:28:04.00 bitrate=N/A dup=0 drop=48748 frame= 1697 fps= 26 q=1.6 size=N/A time=00:28:17.00 bitrate=N/A dup=0 drop=49103 frame= 1710 fps= 26 q=1.6 size=N/A time=00:28:30.00 bitrate=N/A dup=0 drop=49474 frame= 1723 fps= 26 q=1.6 size=N/A time=00:28:43.00 bitrate=N/A dup=0 drop=49858 frame= 1736 fps= 26 q=1.6 size=N/A time=00:28:56.00 bitrate=N/A dup=0 drop=50249 frame= 1749 fps= 26 q=1.6 size=N/A time=00:29:09.00 bitrate=N/A dup=0 drop=50612 frame= 1762 fps= 26 q=1.6 size=N/A time=00:29:22.00 bitrate=N/A dup=0 drop=50981 frame= 1774 fps= 26 q=1.6 size=N/A time=00:29:34.00 bitrate=N/A dup=0 drop=51349 frame= 1787 fps= 26 q=1.6 size=N/A time=00:29:47.00 bitrate=N/A dup=0 drop=51727 frame= 1800 fps= 26 q=1.6 size=N/A time=00:30:00.00 bitrate=N/A dup=0 drop=52098 frame= 1813 fps= 26 q=1.6 size=N/A time=00:30:13.00 bitrate=N/A dup=0 drop=52486 frame= 1824 fps= 26 q=1.6 Lsize=N/A time=00:30:24.00 bitrate=N/A dup=0 drop=52798 video:40987kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
The whole process took 71 seconds with a framerate of 26, CPU usage 50%.
Then I tried to run the same conversion using the same video but with 2 parallel tasks (basically converting it 2 times and saving images with 2 different names). The frame rate of each video was about 17 stable for each video, CPU usage 45 for each process, and total time was 105 seconds for the first and 104 seconds for the other. So running them one after another would have took 70+70=140 seconds, while running 2 istances at the same time, forcing the CPU to work at 100% took 105 seconds to have both videos converted, saving 35 seconds, which on large scale are importants.
-
Ramhound almost 9 yearsA process will only take 100% usage of your CPU if it needs to. Unless you have a 4 core processor adding additional threads to the task wouldn't increase the CPU usage if they were not demanding tasks. You simply might have fast enough processor, although it "being slow" makes that unlikely although you might just have unearthly expectations also.
-
Marki555 almost 9 yearsWhat do you mean by extracting frames? Writing them as image files to disk? Isn't the disk bottleneck?
-
Elisa Cha Cha almost 9 yearsYou should show what you're doing by including your command and the complete console output.
-
Hyperion almost 9 yearsI've updated my post. Seems that neither the disk writing is used to his max.
-
Elisa Cha Cha almost 9 yearsYour actual command is still missing. Unfortunately I can't see your monitor from here.
-
Hyperion almost 9 yearsSorry my mistake, the command is ffmpeg -i 1.mp4 -r 1 C:\TEMP\1-%d.jpg
-
Elisa Cha Cha almost 9 yearsYou can test without the potential bottleneck of writing the output:
ffmpeg -i input -an -c:v mjpeg -f null -
. You can also test with using-threads
. Do any of these suggestions make a difference?
-