in03 / proxima

Transcode source media directly from DaVinci Resolve using multiple machines for encoding. Great for creating proxies quickly.
MIT License
50 stars 3 forks source link

feat: 'Split and Stitch' Encoding #257

Open github-actions[bot] opened 1 year ago

github-actions[bot] commented 1 year ago
Original issue description I've been messing around with running separate FFmpeg processes on segments of the same video file. There are a bunch of benefits here: - Encoding speed is only limited by chunk-duration and worker-pool size - Greater resource utilisation - Chunked job structure lends to more reliable progress-metrics --- I've got this working reliably locally - with no performance gains obviously since I'm running all the FFmpeg processes on the same machine. To get this working here we'll need a few things: - [ ] ~~A new task to parse the original job into segments~~ - [ ] The encoding task's group will become a chord so we can join the segments after encode - [ ] ~~Job must be pickled, not sent as JSON. We need to transport Resolve's PyRemoteObj MediaPoolItem as task results~~ - [ ] Additional cleanup required for temporary files (original segments, temp folder structure, etc.)

closes #9