Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 'Split and Stitch' Encoding #257

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

github-actions[bot]
Copy link
Contributor

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

@github-actions github-actions bot added the feature New feature or request label Feb 10, 2023
@github-actions github-actions bot added this to In progress in Development via automation Feb 10, 2023
@github-actions github-actions bot added this to the Improve encoding performance milestone Feb 10, 2023
@in03 in03 changed the title 'Split and Stitch' Encoding feat: 'Split and Stitch' Encoding Feb 10, 2023
Good
- We've got segment encoding working. Hurray!
- New user configurable settings for split and stitch, segment size.

Not Yet Good
- Concatenation is broken, only concats first segment.
- No output subfolder to keep things tidy
- Progress reporting is broken (expected)
- No tidy up afterwards
- No handling for jobs smaller than segment size
- Celery chord is not durable - fails if a segment fails
- Existing segments are not handled, just overwritten
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
Development
In progress
Development

Successfully merging this pull request may close these issues.

'Split and Stitch' Encoding
1 participant