A small PHP Symfony Console as wrapper around ffmpeg. It allows to cut videos, e.g. remove ads from TV shows.
php
Find a file
Daniel Siepmann c9f9c6fc7b
Update all dependencies
* PHP
* Symfony
* PHPUnit

Add PHPStan to better detect issues while updating.
2025-03-19 11:18:07 +01:00
src Update all dependencies 2025-03-19 11:18:07 +01:00
tests/Unit Update all dependencies 2025-03-19 11:18:07 +01:00
.gitignore Initial first working version 2020-09-30 13:53:28 +02:00
composer.json Update all dependencies 2025-03-19 11:18:07 +01:00
composer.lock Update all dependencies 2025-03-19 11:18:07 +01:00
cutvideo Allow to define temp folder 2023-02-12 11:31:31 +01:00
LICENSE Initial commit 2020-09-30 13:53:09 +02:00
phpstan-baseline.neon Update all dependencies 2025-03-19 11:18:07 +01:00
phpstan.dist.neon Update all dependencies 2025-03-19 11:18:07 +01:00
phpunit.xml.dist Update dependencies 2023-06-11 17:04:44 +02:00
README.rst Update all dependencies 2025-03-19 11:18:07 +01:00
shell.nix Update all dependencies 2025-03-19 11:18:07 +01:00

videocutting

A small PHP Wrapper around ffmpeg to make cutting videos easier.

This project provides a single executable file that wraps a Symfony console command. The command itself accepts some arguments to cut out parts of a video file using ffmpeg.

The resulting file will be moved to a dedicated folder structure.

I'm currently developing this for myself in order to remove advertisements from recorded TV shows. I'm using https://www.youtv.de/ to record stuff.

Drawbacks

  • Right now this script expects a specific file naming to extract information like season name.
  • Resulting file might be off between sound and video on some players (PS4 and my own TV). Others work fine (Mozilla Firefox and VLC).

Benefits

  • Generates files very fast, by copying and not re encoding.

Installation

Install requirements:

  • PHP 8.4 command line
  • ffmpeg
  1. Download / clone project.
  2. Run composer install --no-dev -o
  3. Execute executable ./cutvideo --help to get instructions on how to use the script.