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

V3 experiments #1235

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

V3 experiments #1235

wants to merge 1 commit into from

Conversation

njoyard
Copy link
Member

@njoyard njoyard commented Nov 12, 2023

Complete API rewrite.

New dev tooling

  • Node 18+ only
  • yarn
  • Typescript
  • GH actions for CI
  • ava for testing, with sinon for mocks, c8 and coveralls for coverage
  • prettier

New API principles

  • Zero dependencies (for users, of course we need devDependencies for development)
  • Completely incompatible with fluent-ffmpeg 2.x. I'm still debating whether to include a compatibility layer that emits deprecation warnings, but that would be about the same work as rewriting 2.x from scratch.
  • Natively typescript
  • There is usually only one way to perform a given operation. No more methods with 42 aliases, or arguments that can be strings/arrays/objects and are a pain to validate.
  • Replaced chaining with options object
await ffmpeg({
  input: 'path/to/input.webm',
  output: {
    target: 'path/to/output.mp4',
    video: { codec: 'h264', bitrate: '1M' },
    audio: false
  }
}).run()

Dropped features

The following features were not reimplemented:

  • flvtool/flvmeta specifics; those should be mostly unused by now, people can still either use v2 or run flvtool/flvmeta themselves
  • avconv/avprobe compatibility; libav is dead

@njoyard njoyard added the WIP label Nov 13, 2023
@njoyard njoyard added this to the 3.0.0 milestone Nov 13, 2023
@coveralls
Copy link

coveralls commented Nov 13, 2023

Pull Request Test Coverage Report for Build 6889204749

  • 1040 of 1228 (84.69%) changed or added relevant lines in 15 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-6.1%) to 84.691%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/capabilities.ts 53 71 74.65%
src/process.ts 152 175 86.86%
src/command.ts 64 94 68.09%
src/main.ts 0 32 0.0%
src/utils/parsing.ts 231 316 73.1%
Totals Coverage Status
Change from base Build 6856211874: -6.1%
Covered Lines: 1040
Relevant Lines: 1228

💛 - Coveralls

@fluent-ffmpeg fluent-ffmpeg deleted a comment from codecov bot Nov 13, 2023
@cmd430
Copy link

cmd430 commented Nov 15, 2023

I'm still debating whether to include a compatibility layer that emits deprecation warnings

my $0.02 since v3 is a major version bump breaking changes should be expected, adding a compatibility layer just adds unnecessary complexity

@gabrielstuff
Copy link

Do you need help on this ? @njoyard

@njoyard
Copy link
Member Author

njoyard commented May 13, 2024

@gabrielstuff not really, it's taking a bit of time due to real life :)

But if you want to submit PRs on this branch, feel free.

@zolero
Copy link

zolero commented Aug 26, 2024

No movement here anymore I suppose?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants