feat: add 8 new commands — blur, mirror, picture, color, mute, pip-gr… #7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| branches: [master] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [18, 20, 22] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Verify all commands register | |
| run: node bin/ffmpeg-quick.js --help | |
| - name: Install FFmpeg | |
| run: sudo apt-get update && sudo apt-get install -y ffmpeg | |
| - name: Test --dry-run for each command | |
| run: | | |
| node bin/ffmpeg-quick.js compress test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js gif test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js webm test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js hls test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js audio test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js thumbnail test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js strip-audio test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js info test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js subtitle test.mp4 subs.srt --dry-run | |
| node bin/ffmpeg-quick.js speed test.mp4 2 --dry-run | |
| node bin/ffmpeg-quick.js trim test.mp4 -s 0 -d 5 --dry-run | |
| node bin/ffmpeg-quick.js resize test.mp4 -w 1280 --dry-run | |
| node bin/ffmpeg-quick.js crop test.mp4 640x480 --dry-run | |
| node bin/ffmpeg-quick.js rotate test.mp4 90 --dry-run | |
| node bin/ffmpeg-quick.js fade test.mp4 --in 1 --out 1 --duration 10 --dry-run | |
| node bin/ffmpeg-quick.js reverse test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js volume test.mp4 2.0 --dry-run | |
| node bin/ffmpeg-quick.js fps test.mp4 30 --dry-run | |
| node bin/ffmpeg-quick.js snapshot test.mp4 --interval 1 --dry-run | |
| node bin/ffmpeg-quick.js split test.mp4 10 --dry-run | |
| node bin/ffmpeg-quick.js overlay test.mp4 test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js convert test.mp4 mov --dry-run | |
| node bin/ffmpeg-quick.js loop test.mp4 3 --dry-run | |
| node bin/ffmpeg-quick.js blur test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js mirror test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js picture test.jpg test.mp3 --dry-run | |
| node bin/ffmpeg-quick.js color test.mp4 --brightness 0.1 --dry-run | |
| node bin/ffmpeg-quick.js mute test.mp4 -s 0 -e 5 --dry-run | |
| node bin/ffmpeg-quick.js pip-grid test.mp4 test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js boomerang test.mp4 --dry-run | |
| node bin/ffmpeg-quick.js deinterlace test.mp4 --dry-run | |
| - name: Test real encode (compress a generated video) | |
| run: | | |
| ffmpeg -f lavfi -i testsrc=duration=2:size=320x240:rate=15 -c:v libx264 -pix_fmt yuv420p test-input.mp4 | |
| node bin/ffmpeg-quick.js compress test-input.mp4 -y | |
| node bin/ffmpeg-quick.js trim test-input.mp4 -s 0 -d 1 -y | |
| node bin/ffmpeg-quick.js resize test-input.mp4 -w 160 -y | |
| node bin/ffmpeg-quick.js crop test-input.mp4 160x120 -y | |
| node bin/ffmpeg-quick.js gif test-input.mp4 -y | |
| node bin/ffmpeg-quick.js info test-input.mp4 | |
| node bin/ffmpeg-quick.js rotate test-input.mp4 90 -y | |
| node bin/ffmpeg-quick.js reverse test-input.mp4 -y | |
| node bin/ffmpeg-quick.js fps test-input.mp4 10 -y | |
| node bin/ffmpeg-quick.js volume test-input.mp4 1.5 -y | |
| node bin/ffmpeg-quick.js fade test-input.mp4 --in 0.5 --out 0.5 --duration 2 -y | |
| node bin/ffmpeg-quick.js convert test-input.mp4 mkv -y | |
| node bin/ffmpeg-quick.js loop test-input.mp4 2 -y | |
| node bin/ffmpeg-quick.js snapshot test-input.mp4 --interval 1 -y | |
| node bin/ffmpeg-quick.js split test-input.mp4 1 -y | |
| node bin/ffmpeg-quick.js blur test-input.mp4 -y | |
| node bin/ffmpeg-quick.js mirror test-input.mp4 -y | |
| node bin/ffmpeg-quick.js color test-input.mp4 --brightness 0.1 --saturation 1.5 -y | |
| node bin/ffmpeg-quick.js boomerang test-input.mp4 -y | |
| node bin/ffmpeg-quick.js deinterlace test-input.mp4 -y | |
| node bin/ffmpeg-quick.js mute test-input.mp4 -s 0 -e 1 -y |