lossless-cut

The swiss army knife of lossless video/audio editing

View the Project on GitHub mifi/lossless-cut

Contributing

Development setup

This app is built using Electron. Make sure you have at least Node v16. The app uses ffmpeg from PATH when developing.

git clone https://github.com/mifi/lossless-cut.git
cd lossless-cut
yarn

Note: yarn may take some time to complete.

Installing ffmpeg

Run one of the below commands:

yarn download-ffmpeg-darwin-x64
yarn download-ffmpeg-darwin-arm64
yarn download-ffmpeg-linux-x64
yarn download-ffmpeg-win32-x64

For Windows, you may have to install 7z, and then put the 7z folder in your PATH.

Running

yarn dev

mas-dev (Mac App Store) local build

This will sign using the development provisioning profile:

yarn pack-mas-dev

MAS builds have some restrictions, see isMasBuild variable in code. In particular, any file cannot be read without the user’s consent.

NOTE: when MAS (dev) build, Application Support will instead be here:

~/Library/Containers/no.mifi.losslesscut-mac/Data/Library/Application Support

Starting over fresh

rm -rf ~/Library/Containers/no.mifi.losslesscut-mac

Windows Store notes

Windows store version is built as a Desktop Bridge app (with runFullTrust capability). This means the app has access to essentially everything the user has access to, and even internetClient is redundant.

Releasing

For per-platform build/signing setup, see this article.

Release new version

After release

Minimum OS version

Minimum supported OS versions for Electron. As of electron 22:

MacOS LSMinimumSystemVersion

How to check the value:

yarn pack-mas-dev
cat dist/mas-dev-arm64/LosslessCut.app/Contents/Info.plist
<key>LSMinimumSystemVersion</key>
<string>10.13</string>

LSMinimumSystemVersion can be overridden in electron-builder by mac.minimumSystemVersion

See also MACOS_MIN in ffmpeg-build-script.

Links:

Maintainence chores

Keep dependencies up to date

i18n

yarn scan-i18n

Licenses

Generate summary

npx license-checker --summary

Regenerate licenses file

yarn generate-licenses
#cp licenses.txt losslesscut.mifi.no/public/

Then deploy.