Я никогда не использовал этот компонент темы на своих сайтах сообщества, так как он мне не был нужен.
Но у меня также есть собственный личный закрытый форум, который я использую для множества целей.
Для меня формы-заполнители оказались невероятно полезными. В частности, я несколько раз в неделю использую длинные команды, которые не помню наизусть, и каждый раз нужно изменять их части.
Этот компонент позволяет мне быстро настраивать и копировать эти команды в свой терминал для мгновенного выполнения.
Вот три примера того, как я их использую:
Преобразование всех изображений из заданного формата в JPG
Get-ChildItem -Filter *.=EXTENSION= | ForEach-Object { magick $_.FullName -quality =QUALITY= ($_.FullName -replace '\.=EXTENSION=$', '.jpg'); if (=DELETE_ORIGINAL= -eq 1) { Remove-Item $_.FullName } }
Добавить задержку ко всем файлам субтитров .srt в текущей папке[1]
Get-ChildItem -Filter '*.srt' | ForEach-Object {
$srtFile = $_.FullName
$tempSrtFile = "$($srtFile).tmp.srt"
Write-Host "Обработка: $srtFile" -ForegroundColor Green
ffmpeg -itsoffset =DELAY= -i "$srtFile" -c copy "$tempSrtFile"
if (Test-Path -LiteralPath "$tempSrtFile") {
Move-Item -LiteralPath "$tempSrtFile" -Destination "$srtFile" -Force
Write-Host "Сдвиг $srtFile на =DELAY= секунды(сек)." -ForegroundColor Green
} else {
Write-Host "Не удалось обработать $srtFile. Проверьте вывод FFmpeg." -ForegroundColor Red
}
}
Обрезать и конвертировать заданный видеофайл в форматы H264, HEVC или без потерь
if ("=CODEC=" -eq "h264") { ffmpeg -ss =FROM= -to =TO= -i "=FILENAME=" -c:v libx264 -pix_fmt yuv420p -crf =COMPRESSION= -preset medium -c:a aac -b:a 192k -movflags +faststart "=FILENAME=-h264.mp4" } elseif ("=CODEC=" -eq "hevc") { ffmpeg -ss =FROM= -to =TO= -i "=FILENAME=" -c:v libx265 -pix_fmt yuv420p -tag:v hvc1 -crf =COMPRESSION= -preset medium -c:a aac -b:a 192k -movflags +faststart "=FILENAME=-hevc.mp4" } elseif ("=CODEC=" -eq "lossless") { ffmpeg -ss =FROM= -to =TO= -i "=FILENAME=" -c:v ffv1 -level 3 -g 1 -c:a pcm_s16le "=FILENAME=-=CODEC=.mkv" } else { Write-Host "Неизвестный кодек: =CODEC="; exit 1 }
На данный момент это очень важная функция для моего личного Discourse, а значит, и для моей повседневной жизни, поэтому я очень рад, что она существует. ![]()
Единственный недостаток в том, что я бы хотел, чтобы у компонента была кнопка-ярлык, потому что… я не помню весь синтаксис для создания полей-заполнителей в новой теме и полагаюсь на копирование и вставку ![]()
Что ж, написание этой темы заставило меня посмотреть на варианты панели инструментов, и я обнаружил, что ярлык действительно есть, что заставляет меня чувствовать себя одновременно глупо и счастливо ![]()
Ещё одна замечательная особенность этого компонента.
В данном случае нужно просто заменить одну длительность в скрипте, но для меня всё равно удобнее корректировать его таким образом, чем менять значение напрямую в коде
↩︎