Aras Pranckevicius
422dd9404f
ffmpeg: multithreaded conversion from RGBA into encoding format
...
Whenever movie frame encoding needs to be in non-RGBA format (pretty much
always, e.g. H.264 uses YUV etc.), the ffmpeg code has been using
sws_scale() since 2007. But that one is completely single threaded.
It can be multi-threaded by passing "threads" option to SwsContext
(in a cumbersome way), combined with sws_scale_frame API. Which however
requires frame data buffers to be allocated via AVBuffer machinery.
Rendering a 300-frame part of Sprite Fright Edit (target H.264 Medium):
- Windows Ryzen 5950X: 16.1 -> 12.0 seconds (generate_video_frame part
4.7 -> 0.7 sec).
- Mac M1 Max: 13.1 -> 12.5 sec. Speedup is smaller, but comparatively,
entirely other part of movie rendering (audio resampling inside audaspace)
is way more expensive compared to the windows machine.
2023-12-15 12:35:59 +01:00
..
2023-11-16 11:41:55 +01:00
2023-12-05 15:10:27 +01:00
2023-12-01 20:38:54 +01:00
2023-11-16 11:41:55 +01:00
2023-12-01 20:38:54 +01:00
2023-12-07 10:38:54 +11:00
2023-12-13 08:40:21 -05:00
2023-12-05 15:10:27 +01:00
2023-12-05 15:10:27 +01:00
2023-11-16 11:41:55 +01:00
2023-12-11 10:54:34 +01:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-10-30 21:40:35 +01:00
2023-12-06 16:05:14 +01:00
2023-11-22 15:48:42 -05:00
2023-12-07 15:33:28 +01:00
2023-12-01 20:38:54 +01:00
2023-11-07 15:42:52 +11:00
2023-12-13 13:40:40 +01:00
2023-12-13 12:36:45 +01:00
2023-12-13 12:36:45 +01:00
2023-12-13 12:36:45 +01:00
2023-12-13 12:36:45 +01:00
2023-12-13 12:36:45 +01:00
2023-11-14 09:30:40 +01:00
2023-12-01 20:38:54 +01:00
2023-12-05 11:53:55 +01:00
2023-12-01 20:38:54 +01:00
2023-12-14 12:32:11 +11:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-11-16 11:41:55 +01:00
2023-12-14 12:51:19 +11:00
2023-12-13 11:58:54 +01:00
2023-11-14 09:30:40 +01:00
2023-11-16 11:41:55 +01:00
2023-11-21 14:12:23 +01:00
2023-12-14 12:32:11 +11:00
2023-12-01 20:38:54 +01:00
2023-12-13 13:40:40 +01:00
2023-12-08 16:40:06 -05:00
2023-12-01 20:38:54 +01:00
2023-11-16 11:41:55 +01:00
2023-10-30 21:40:35 +01:00
2023-11-28 16:05:12 -05:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-11-15 14:02:48 +01:00
2023-12-01 20:38:54 +01:00
2023-11-16 11:41:55 +01:00
2023-12-06 16:05:14 +01:00
2023-10-30 21:40:35 +01:00
2023-12-01 20:38:54 +01:00
2023-12-09 05:37:37 +01:00
2023-11-16 11:41:55 +01:00
2023-12-12 18:23:59 -05:00
2023-12-08 16:40:06 -05:00
2023-12-12 18:23:59 -05:00
2023-12-12 18:23:59 -05:00
2023-12-14 12:32:11 +11:00
2023-12-14 12:32:11 +11:00
2023-12-04 15:23:24 -05:00
2023-12-14 12:32:11 +11:00
2023-12-14 12:32:11 +11:00
2023-11-28 16:40:43 -05:00
2023-11-16 11:41:55 +01:00
2023-12-08 13:09:11 +01:00
2023-12-14 11:35:25 +01:00
2023-12-09 05:06:10 +01:00
2023-12-12 09:43:28 +01:00
2023-12-14 12:32:11 +11:00
2023-11-07 16:33:19 +11:00
2023-10-30 21:40:35 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-12-12 18:23:59 -05:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-10-30 21:40:35 +01:00
2023-12-05 13:28:29 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 20:38:54 +01:00
2023-12-08 16:40:06 -05:00
2023-12-01 20:38:54 +01:00
2023-11-28 16:05:12 -05:00
2023-12-11 15:47:11 -05:00
2023-12-01 20:38:54 +01:00
2023-12-11 15:47:11 -05:00
2023-12-15 10:20:44 +01:00
2023-12-15 10:20:44 +01:00
2023-12-15 10:20:44 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-13 11:08:03 +01:00
2023-12-13 09:50:42 +01:00
2023-10-30 21:40:35 +01:00
2023-12-01 20:38:54 +01:00
2023-12-13 08:40:21 -05:00
2023-11-16 11:41:55 +01:00
2023-12-13 08:40:21 -05:00
2023-12-01 20:38:54 +01:00
2023-12-08 16:40:06 -05:00
2023-12-13 18:34:13 +01:00
2023-12-01 20:38:54 +01:00
2023-11-30 19:51:22 +01:00
2023-11-30 19:51:22 +01:00
2023-12-07 12:45:27 +11:00
2023-12-01 20:38:54 +01:00
2023-11-30 19:51:22 +01:00
2023-12-01 20:38:54 +01:00
2023-12-14 11:14:50 +11:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-02 11:07:25 -08:00
2023-12-05 11:53:55 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-07 12:45:27 +11:00
2023-12-11 00:23:03 +01:00
2023-11-16 11:41:55 +01:00
2023-11-07 16:33:19 +11:00
2023-12-01 20:38:54 +01:00
2023-12-08 16:40:06 -05:00
2023-12-07 10:38:54 +11:00
2023-12-12 18:23:59 -05:00
2023-12-11 15:47:11 -05:00
2023-11-16 11:41:55 +01:00
2023-11-28 15:19:20 +11:00
2023-12-08 16:40:06 -05:00
2023-12-08 16:40:06 -05:00
2023-12-14 12:32:11 +11:00
2023-12-06 23:33:46 -05:00
2023-12-12 18:23:59 -05:00
2023-12-04 15:23:24 -05:00
2023-12-14 12:32:11 +11:00
2023-12-14 12:32:11 +11:00
2023-12-08 16:40:06 -05:00
2023-12-13 08:40:21 -05:00
2023-12-12 18:23:59 -05:00
2023-12-14 12:32:11 +11:00
2023-12-14 12:32:11 +11:00
2023-12-14 12:32:11 +11:00
2023-12-14 12:32:11 +11:00
2023-12-14 12:32:11 +11:00
2023-12-14 12:32:11 +11:00
2023-12-08 16:40:06 -05:00
2023-12-12 18:23:59 -05:00
2023-12-13 09:50:47 -05:00
2023-12-12 18:23:59 -05:00
2023-12-01 20:38:54 +01:00
2023-12-12 18:23:59 -05:00
2023-12-04 07:55:47 -05:00
2023-12-11 07:50:29 -05:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-11-28 12:26:51 -05:00
2023-11-14 09:30:40 +01:00
2023-12-05 23:01:12 +01:00
2023-12-11 07:50:29 -05:00
2023-12-08 16:40:06 -05:00
2023-12-01 20:38:54 +01:00
2023-12-13 13:40:40 +01:00
2023-11-27 10:55:39 +11:00
2023-10-30 21:40:35 +01:00
2023-10-31 13:46:31 +01:00
2023-12-06 16:05:14 +01:00
2023-11-20 09:39:13 +01:00
2023-12-13 16:24:25 +01:00
2023-12-13 08:40:21 -05:00
2023-12-04 15:23:24 -05:00
2023-11-27 16:14:49 +01:00
2023-12-13 08:40:21 -05:00
2023-12-01 20:38:54 +01:00
2023-11-16 11:41:55 +01:00
2023-12-01 20:38:54 +01:00
2023-12-14 18:20:46 -05:00
2023-11-07 16:33:19 +11:00
2023-11-16 11:41:55 +01:00
2023-12-13 08:40:21 -05:00
2023-12-13 08:40:21 -05:00
2023-12-14 18:20:46 -05:00
2023-12-05 23:01:12 +01:00
2023-12-14 18:20:46 -05:00
2023-12-14 12:32:11 +11:00
2023-11-16 11:41:55 +01:00
2023-12-14 18:20:46 -05:00
2023-12-14 12:32:11 +11:00
2023-12-13 09:39:03 -05:00
2023-12-14 18:20:46 -05:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-11-15 18:46:07 +01:00
2023-10-30 21:40:35 +01:00
2023-10-30 21:40:35 +01:00
2023-12-07 10:38:54 +11:00
2023-12-05 23:01:12 +01:00
2023-11-16 11:41:55 +01:00
2023-10-30 21:40:35 +01:00
2023-12-14 12:32:11 +11:00
2023-12-14 12:32:11 +11:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-14 16:17:55 +01:00
2023-11-16 11:41:55 +01:00
2023-12-13 09:18:39 -05:00
2023-12-11 07:50:29 -05:00
2023-12-11 07:50:29 -05:00
2023-12-11 07:50:29 -05:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-12-11 07:50:29 -05:00
2023-11-16 11:41:55 +01:00
2023-11-27 15:19:44 +01:00
2023-12-11 07:50:29 -05:00
2023-12-11 07:50:29 -05:00
2023-12-11 07:50:29 -05:00
2023-12-08 16:40:06 -05:00
2023-12-13 12:14:47 +11:00
2023-12-01 20:38:54 +01:00
2023-10-30 21:40:35 +01:00
2023-11-15 10:53:30 +01:00
2023-11-15 18:56:00 +01:00
2023-12-01 20:38:54 +01:00
2023-11-28 16:05:12 -05:00
2023-12-01 20:38:54 +01:00
2023-11-28 16:05:12 -05:00
2023-11-30 19:51:22 +01:00
2023-11-16 11:41:55 +01:00
2023-12-13 09:50:47 -05:00
2023-12-01 20:38:54 +01:00
2023-12-06 16:05:14 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-15 12:35:59 +01:00