Скрипт для обрезки с помощью ffmpeg

Новый современный способ сделать это - использовать toLocaleDateString , поскольку он не только позволяет форматировать дату с правильной локализацией, вы даже можете передавать параметры форматирования для архивирования желаемого результата:

var date = new Date(2018, 2, 1);
var result = date.toLocaleDateString("en-GB", { // you can skip the first argument
  year: "numeric",
  month: "2-digit",
  day: "2-digit",
});
console.log(result);

Когда вы пропустите первый аргумент, он обнаружит язык браузера. Кроме того, вы также можете использовать 2-digit в опции года

.

Если вам не нужно поддерживать старые браузеры, такие как IE10, это самый чистый способ сделать эту работу. IE10 и более низкие версии не будут понимать аргумент параметров.

1
задан 05.05.2020, 21:39

1 ответ

Во-первых, и самое главное, не используйте имена переменных в верхнем регистре. Вы рискуете переопределить переменные окружения и специальные переменные оболочки, и в этом случае вы сделали это, переписав переменную PATH.

Во-вторых. Кавычки очень и очень важны в сценариях оболочки; заключение в кавычки переменных позволяет избежать того, что результат подвергается расширению пути и разделению слов.

Например, если var="St. Elmo's Fire.mpg", то $var станет тремя словами St., Elmo's и Fire.mpg, а "$var" станет одним словом St. Elmo's Fire.mpg. Поэтому всегда указывайте расширения переменных. "$var", а не $var.

Примерно так должно быть правильнее:

#!/bin/bash
read -ep "Enter path for the .mpg-file: " file
IFS=: read -rp "Where should the trimming start? (HH:MM:SS): " shour smin ssec
IFS=: read -rp "When should the trimming end? (HH:MM:SS): " ehour emin esec
read -rp "What song is it? " title
read -rp "Who sang it? " artist
read -rp "Which album?" album

start=$(( shour*3600 + smin*60 + ssec ))
end=$(( ehour*3600 + emin*60 + esec ))
duration=$(( end - start ))

ffmpeg -i "$file" -t "$duration" -acodec copy -vcodec copy -metadata "title=$title" \
       -metadata "author=$artist" "$title · $artist.mpg"

У вашей команды ffmpeg было -ss "$ANFANG", но ANFANG никогда не задавалось в вашем скрипте, поэтому я ее опустил.

2
ответ дан 05.05.2020, 21:39
  • 1
    Большое спасибо. Это работает отлично теперь. Исходный сценарий является немецким. Я отсутствовал для замены " ANFANG" =beginning. Я предполагаю, это также почему ПУТЬ wasn' t проблема, потому что в моем немецком сценарии это был PFAD. – Alex Buznik 05.05.2020, 21:40

Теги

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