-
Notifications
You must be signed in to change notification settings - Fork 0
/
xrns_ogg.php
57 lines (41 loc) · 1.75 KB
/
xrns_ogg.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
require(__DIR__ . '/lib/functions.php');
// --------------------------------------------------------------------------------------------------------------------
// Sanity check command prompt input
// --------------------------------------------------------------------------------------------------------------------
$scriptName = basename($argv[0]);
if ($argc < 3) {
echo "Error: $scriptName expects at least 2 parameters.\n";
echo "Usage: `php $scriptName /path/to/file1.xrns file2.xrns [1|2|3|...|10]`\n";
echo "$scriptName will output ogg compresed file (file2.xrns) to current working directory.\n";
die();
}
$inputFileName = $argv[1];
$outputFileName = $argv[2];
if (!file_exists($inputFileName))
die("Error: The file $inputFileName was not found.\n");
if (!(preg_match('/(\.zip$|\.xrns$|\.xrni$)/i', $outputFileName))) {
die("Error: The filename $outputFileName is invalid, use .xrns / .xrni (or .zip)\n");
}
$quality = 3;
if (isset($argv[3]) && ctype_digit($argv[3]) && $argv[3] >= 0 && $argv[3] <= 10) {
$quality = $argv[3];
}
// --------------------------------------------------------------------------------------------------------------------
// Compress using Flac and Ogg
// --------------------------------------------------------------------------------------------------------------------
use XrnsPhp\Logger;
use XrnsPhp\File;
use XrnsPhp\Ogg;
try {
$logger = new Logger();
$logger->log($logger->startMessage());
$file1 = new File($inputFileName);
$ogg = new Ogg($file1);
$ogg->compress($quality);
$file1->zip($outputFileName);
$logger->log($logger->doneMessage());
}
catch (Exception $e) {
$logger->log($logger->beautifyException($e));
}