Страница 3 из 4
Добавлено: Ср окт 08, 2014 14:06
Skif_off
Dimsok писал(а):По сути обычная кнопка. Я это и подразумевал под выражением "средствами тотала"
Фактически, ТС просто запускает, del /f /q - это уже консоль.
Прошу прощения, думал - понятно. Кнопка целиком, на всякий случай
[cut]
Код: Выделить всё
TOTALCMD#BAR#DATA
cmd /c "%COMMANDER_PATH%\Plugins\exe\balabolka\lame.exe"
%V --priority -b 32 -h --tt "%O" --ta Dimsok --tg Audiobook "%P%O.mp3" && del /f /q %V
%COMMANDER_PATH%\Plugins\exe\balabolka\lame.exe
Convert to mp3
%COMMANDER_PATH%\Plugins\exe\balabolka\
1
-1
[/cut]
Dimsok писал(а): Зачем в кавычки? вроде и так нормально.
Просто путь или имя файла с пробелами ещё не попались.
Добавлено: Ср окт 08, 2014 14:24
Dimsok
А вот эта кнопка с кавычками как раз и не работает
Да, и кроме этих двух параметнов, никакие ещё в кавычки брать не следует?
Добавлено: Ср окт 08, 2014 15:54
Skif_off
Dimsok
Я с телефона, что-то мог проглядеть, прошу прощения, сравните с рабочей. Про кавычки:
Flasher, в принципе,
всё перечислил для вашего случая, а так - все, кроме %P%N и %V, пути и имена нужно обрамлять кавычками.
Осталось самому запомнить
) Когда привыкаешь по возможности не использовать пробелы в именах - это действует разлагающе.
Добавлено: Ср окт 08, 2014 16:07
Dimsok
Так эта кнопка без кавычек работает (там, где это позволяют имена), а с кавычками - никакой реакции
Добавлено: Ср окт 08, 2014 18:07
Flasher
Skif_off писал(а):а так - все, кроме %P%N и %V, пути и имена нужно обрамлять кавычками
Не только %P%N и %V, ещё как минимум 27 вариантов, не считая комбинаций с %Z и %X.
Dimsok
Поставь ещё кавычку перед %С и в конце параметров.
Настройка кнопки конвертации аудиофайлов
Добавлено: Чт авг 29, 2019 13:30
KarS
Всем привет!
Хотелось бы настроить кнопку для конвертации аудиофайлов, например FLAC-mp3.
Для конвертации пробую разные приложения, которые поддерживают работу с командной строкой.
1. Так, для
Total Audio Converter работает:
Код: Выделить всё
TOTALCMD#BAR#DATA
"C:\Program Files\Total Audio Converter\AudioConverter.exe"
%P%S %T -cMP3 -vbr
C:\Program Files\Total Audio Converter\AudioConverter.exe
C:\Program Files\Total Audio Converter\
-1
В справке программы предусмотрены ключи для mp3: -vbr - [Min,Max,Quality]
Но как их использовать не понятно. Пробовал разные сочетания на тестовом файле FLAC - результат один и тот же - на выходе создаётся аудиофайл mp3 с одними и теми же параметрами.
Об этом написал разработчику, но он молчит как рыба.
Может кто-нибудь сталкивался? Как правильно указать ключи в параметрах кнопки, чтобы использовать разные режимы кодирования?
2. Пробую
xrecode3 - более гибкая программа.
Код: Выделить всё
TOTALCMD#BAR#DATA
"C:\Program Files\xrecode3\xrecode3c.exe"
%P%S %T -i mp3 /vbrmin 64 /vbrmax 320
C:\Program Files\xrecode3\xrecode3c.exe
C:\Program Files\xrecode3\
-1
Но так программа вообще не конвертирует.
Мелькает только окно командной строки, а конвертации не происходит.
Описание командной строки для этой программы
здесь
Связывался с разработчиком, но он ответил, что с Total Commander не работает и не знает, как сконфигурировать кнопку.
Может кто-нибудь подскажет, как правильно настроить кнопку для конвертации аудио с помощью
xrecode3?
Добавлено: Чт авг 29, 2019 15:13
Avada
KarS
Неужели так трудно выяснить, в каких темах какого подфорума делаются запросы на кнопки (и вообще и для конкретного случая)? В любом случае это никаким образом не "Общие вопросы". Про необходимость пользоваться поиском по форуму вам уже в своё время писали.
Перенесено по принадлежности.
Добавлено: Пт авг 30, 2019 09:10
KarS
Avada,
Спасибо, что поправили.
У меня получилось сделать кнопку для
xrecode3:
Код: Выделить всё
TOTALCMD#BAR#DATA
"C:\Program Files\xrecode3\xrecode3c.exe"
-i %P%S /r -o %T /dest mp3 /vbrmin 64 /vbrmax 320
C:\Program Files\xrecode3\xrecode3c.exe
C:\Program Files\xrecode3\
-1
Правда по команде при выполнении конвертации отображается окно консоли. Как скрыть, не знаю.
Добавлено: Пт авг 30, 2019 14:53
Flasher
KarS
Конкретно по xrecode у нас
имеется тема.
Без прослоек:
TOTALCMD#BAR#DATA
%ComSpec% /q/c for /f "usebackq delims= eol=" %f in
(`type "%WL"`) do if /i ".flac"=="%%~xf" flac\flac.exe -cds "%%f"|LAME\lame.exe --quiet -f -m j -b 320 --noreplaygain - "%P%%~nf.mp3"
wmploc.dll,59
Сконвертировать выбранные файлы FLAC в MP3
%COMMANDER_PATH%\Utils\Converters\Audio\
1
Последний lame
здесь. flac
здесь (...-win.zip).
Добавлено: Пт авг 30, 2019 16:37
KarS
Flasher,
большое спасибо!
И за то, что поделились кодом, и за актуальные ссылки!
Мне Ваш вариант понравился: не нужно платных утилит, можно всё настроить.
В xrecode нашёл интересный ключ: /fileexists - позволяет выбрать, при совпадении имени выходного файла с существующим в папке что делать - переписать или переименовать (добавив в конце _1).
Скажите, можно в Вашем коде реализовать автоматическое переименование при совпадении имён полученных файлов?
Думаю, это было бы удобно, чтобы можно было сравнить полученные файлы по размеру, если они были сделаны с разными параметрами строки.
Добавлено: Пт авг 30, 2019 20:08
Flasher
KarS
Пож-та.
Счётчик через кнопку, наверно, не выйдет. VBS устроит?
Код: Выделить всё
'================================= VBS =================================
' Конвертация выбранных FLAC в MP3 c добавкой счётчика при необходимости
' Параметры: %WL "<путь получателя>" "<ключи LAME>"
' Пример: %WL "%P" "-b 320 -q 0 -m j --noreplaygain"
Option Explicit: Dim A, WSS, List, F, Ext, PF, BN, c, FN
'========================= Путь к утилите flac =========================
Const FLAC = """%COMMANDER_PATH%\Utils\Converters\Audio\FLAC\flac.exe"""
'========================= Путь к утилите lame =========================
Const LAME = """%COMMANDER_PATH%\Utils\Converters\Audio\LAME\lame.exe"""
'=======================================================================
Set A = WSH.Arguments : If A.Count = 0 Then WSH.Quit
If A.Count <> 3 Then MsgBox "Укажите 3 параметра!", 4144 : WSH.Quit
Set WSS = CreateObject("WScript.Shell")
With CreateObject("Scripting.FileSystemObject")
Set List = .OpenTextFile(A(0),,,-1)
PF = .BuildPath(A(1), "\")
Do: F = List.ReadLine
If Right(F, 1) <> "\" Then
Ext = .GetExtensionName(F)
If StrComp(Ext, "flac", 1) = 0 Then
BN = .GetBaseName(F) : FN = BN & ".mp3" : c = 0
While (.FileExists(PF & FN) OR .FolderExists(PF & FN))
c = c + 1 : FN = BN & " (" & c & ").mp3"
Wend
WSS.Run "%ComSpec% /q/c """ & FLAC & " -cds """ & F & """|" &_
LAME & " --quiet " & A(2) & " - """ & A(1) & FN & """""", 0, 1
End If
End If
Loop Until List.AtEndOfStream
End With
List.Close : Set List = Nothing
WSS.Popup "Конвертация завершена!", 2, " Конвертация FLAC в MP3", 4160
Set WSS = Nothing
Если в конце 29-ой строки убрать ', 1', будет асинхронный запуск, но тогда ЦП забъётся.
Добавлено: Сб авг 31, 2019 06:51
KarS
Flasher, замечательно!
У VBS конечно возможностей больше.
Очень дружелюбно сделано:
- есть отдельная строка для параметров кнопки - задаём параметры конвертации
- предусмотрено редактирование путей размещения кодеков
- окно консоли не появляется
- есть сообщение, если пользователь не настроил параметры конвертации
- есть сообщение об окончании конвертации (я как раз думал об этом, ведь не понятно, сколько ждать (окончена конвертация или нет), если собрался переместить полученный файл дальше).
Большое спасибо!
Я использую конвертацию, чтобы из своих архивных записей выбирать файлы на флешку с любимыми композициями в формате mp3 256.
В архиве у меня файлы в форматах WAV, FLAC, APE, mp3 (cbr320).
Думаю, что с конвертацией FLAC-mp3 вопрос решён.
Но можно как-нибудь добавить в скрипт распознавание на входе WAV, FLAC, APE, mp3, чтобы он на выходе всё конвертил в mp3 с нужными параметрами?
Это было бы очень удобно, и можно было бы это поместить в коллекцию и рекомендовать другим.

Добавлено: Сб авг 31, 2019 11:26
Skif_off
Всё-таки система может быть достаточно производительная, наверное, можно попробовать отслеживать количество процессов кодировщика (SELECT * FROM Win32_Process WHERE Name = ..., потом Count): если, например, больше 4, то для очередного запуска WaitOnReturn равно true и наоборот.
Оно, конечно, не всегда будет красиво работать, но всё одно не по очереди и не всей кучей сразу.
Добавлено: Сб авг 31, 2019 19:37
Flasher
KarS писал(а):Но можно как-нибудь добавить в скрипт распознавание на входе WAV, FLAC, APE, mp3
Так и думал, что всё исходным запросом не закончится. Набор понятен, но опять же чисто под частные нужности. Т.е. подразумевается забыть про другие не менее значимые форматы аудио.
Неполный набор, представленный в некоторых конвертерах:
3ga, aac, ac3, aiff, alac, als, amr, amb, ape, apl, au, avr, bonk, bwf, caf, cdda, cpt, dts, flac, kxs, la, lqt, m4a, m4b, m4p, m4r, mka, mkw, mmf, mp2, mp3, mp4a, mpc, oga, ogg, ofr, opus, pac, ra, raw, shn, spx, tak, tta, vqf, wav, weba, wma, wv, wvc, xa, xm.
В частности в
AudioCoder,
XMedia Recode и
SUPER с нехилым пакетом кодеров. Тут одними shntool, sox и ffmpeg не обойдёшься.
Более полные наборы понятно где:
1,
2,
3,
4,
5,
6.
Но на написание полноценного скриптового аудио-конвертера я точно не рассчитывал.

Добавлено: Вс сен 01, 2019 05:49
KarS
Flasher, большое спасибо за Ваше участие.
То, что вы сделали, - это очень хорошо.