Использование звукового файла для обрезки запускает и останавливает времена

Каталоги с именами, которые содержат пробелы, видимые от /foo/bar а не от barfoo, вероятные преступники. xargs разделяет его вывод пробелами и также интерпретирует кавычки, обратные косые черты, и даже _ символ — видит руководство для получения дополнительной информации таким образом, пробел на имена файла или каталога заставляет это передавать неполные имена файлов grep.

Для работы вокруг этой проблемы использовать find -print0 в сочетании с xargs -0, как это:

find . -print0 2>/dev/null | xargs -0 grep -i something_to_find 2>/dev/null

-print0 опция говорит find разделить имена файлов с двоичными 0 символами, которые не могут появиться на имя правильного файла. Соответствие -0 опция говорит части использовать тот же самый символ в качестве разделителя и также не интерпретировать кавычки и обратные косые черты.

34
03.02.2015, 23:40
2 ответа

ffmpeg, похоже, имеет новую опцию -to в документации :

-to position ( вход / выход )
Остановить запись вывода или чтение ввода в позиции . позиция должна быть спецификацией продолжительности времени, см. (ffmpeg-utils) раздел длительности времени в руководстве ffmpeg-utils (1).

-to и -t являются взаимоисключающими, и -t имеет приоритет.

Пример команды с двумя форматами времени

ffmpeg -i file.mkv -ss 20 -to 40 -c copy file-2.mkv
ffmpeg -i file.mkv -ss 00:00:20 -to 00:00:40 -c copy file-2.mkv

Она должна создать копию (file-2.mkv) file.mkv от 20-секундной метки до 40-секундной метки.

47
27.01.2020, 19:37

Если у вас установлен PHP, сделайте его скриптом:

CimEDift.php Содержание:

<?php
// Create datetime objcects
$dt1 = new DateTime($argv[1]);
$dt2 = new DateTime($argv[2]);

// Conver difference to seconds
$dt3 = $dt2->format('U') - $dt1->format('U');

// echo $dt3."\n";
$h = (int)($dt3 / 3600);
$dt3 %= 3600;
$m = (int)($dt3 / 60);
$dt3 %= 60;
$s = $dt3;

// Dump as H:M:S
echo $h . ":" . $m . ":" . $s;

?>

Audiochop .SH Содержание:

#!/bin/bash
INFILE=$1
START=$2
STOP=$3
OUTFILE=$4

OFFSET=`php TimeDiff.php "$START" "$STOP"`

echo "Disecting $INFILE starting from $START to $STOP (duration $OFFSET)"
ffmpeg -ss "$START" -t "$OFFSET" -i "$INFILE" "$OUTFILE"

Использование:

./audiochop.sh [input.mp3] [startchop] [stopchop] [output.mp3]

Где [Startchop] и [STOPCHOP] являются абсолютными временными метками от начала дорожки.

NB: скрипт (ы) может потребоваться настроить в зависимости от версии платформы и т. Д. ...

0
27.01.2020, 19:37

Теги

Похожие вопросы