Check if result file exists, and provide force option
This commit is contained in:
parent
8b8f7fcab1
commit
efb7991e57
4 changed files with 13 additions and 4 deletions
1
cutvideo
1
cutvideo
|
@ -16,6 +16,7 @@ use Symfony\Component\Console\SingleCommandApplication;
|
|||
->addArgument('file', InputArgument::REQUIRED, 'The video file to cut.')
|
||||
->addArgument('start', InputArgument::REQUIRED, 'The starting point of the video')
|
||||
->addArgument('end', InputArgument::REQUIRED, 'The end point of the video')
|
||||
->addOption('force', 'f', InputOption::VALUE_NONE, 'Force generation, even if target already exists.')
|
||||
->addOption('ad', null, InputOption::VALUE_IS_ARRAY | InputOption::VALUE_REQUIRED, 'Start and end of ads, separate start and end via "/".', [])
|
||||
->setCode(new Command())
|
||||
->run();
|
||||
|
|
|
@ -44,6 +44,14 @@ class Command
|
|||
$input->getOption('ad')
|
||||
);
|
||||
|
||||
if (
|
||||
file_exists($videoInfo->getTargetFilePath())
|
||||
&& $input->getOption('force') === false
|
||||
) {
|
||||
$this->io->error('Target file already exist, "-f" to force generation.');
|
||||
return 1;
|
||||
}
|
||||
|
||||
$cutting = new Cutting($videoInfo);
|
||||
|
||||
$this->io->title('Generating temp cutted video files.');
|
||||
|
|
|
@ -65,7 +65,7 @@ class Cutting
|
|||
public function getCommandForGeneratingMetadata(): Process
|
||||
{
|
||||
$command = sprintf(
|
||||
'ffmpeg -i %s -f ffmetadata %s',
|
||||
'ffmpeg -y -i %s -f ffmetadata %s',
|
||||
escapeshellarg($this->video->getOriginalFilename()),
|
||||
escapeshellarg($this->getMetadataFilename())
|
||||
);
|
||||
|
@ -94,7 +94,7 @@ class Cutting
|
|||
public function getCommandForGeneratingVideo(): Process
|
||||
{
|
||||
$command = sprintf(
|
||||
'ffmpeg -f concat -safe 0 -i %s -c copy'
|
||||
'ffmpeg -y -f concat -safe 0 -i %s -c copy'
|
||||
. ' -f ffmetadata -i %s -c copy -map_metadata 1'
|
||||
// . ' -metadata Title="$episodeTitle"'
|
||||
. ' %s',
|
||||
|
|
|
@ -132,7 +132,7 @@ class CuttingTest extends TestCase
|
|||
$command = $subject->getCommandForGeneratingMetadata();
|
||||
|
||||
static::assertSame(
|
||||
"ffmpeg -i 'Some-Video.mp4' -f ffmetadata '/tmp/Some-Video-metadata.txt'",
|
||||
"ffmpeg -y -i 'Some-Video.mp4' -f ffmetadata '/tmp/Some-Video-metadata.txt'",
|
||||
$command->getCommandLine()
|
||||
);
|
||||
}
|
||||
|
@ -236,7 +236,7 @@ class CuttingTest extends TestCase
|
|||
$command = $subject->getCommandForGeneratingVideo();
|
||||
|
||||
static::assertSame(
|
||||
'ffmpeg -f concat -safe 0 -i \'/tmp/Series-Name_Series-01_episode-title-01-concat.txt\' -c copy'
|
||||
'ffmpeg -y -f concat -safe 0 -i \'/tmp/Series-Name_Series-01_episode-title-01-concat.txt\' -c copy'
|
||||
. ' -f ffmetadata -i \'/tmp/Series-Name_Series-01_episode-title-01-metadata.txt\' -c copy -map_metadata 1'
|
||||
// . ' -metadata Title="$episodeTitle"'
|
||||
. ' \'Series-Name/Series-01/10-episode title.mp4\'',
|
||||
|
|
Loading…
Reference in a new issue