Кнопка для пакетной конвертации в MP3
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander

#1: Кнопка для пакетной конвертации в MP3 Author: kadvlad PostPosted: Tue Jun 10, 2008 19:11
    —
Друзья,
Решил сделать кнопку, чтоб список выделенных файлов (директорий?) передавался в lame.exe для конвертации в mp3.

TOTALCMD#BAR#DATA
%ProgramFiles%\foobar2000\codecs\lame.exe -b 128
%S
%ProgramFiles%\Totalcmd\totalcmd.exe,2
Lame
%ProgramFiles%\foobar2000\codecs\
-1
-1

Мелькает черный экран - и всё.
Подскажите, пожалуйста, где ошибка?
Знает ли кто-нибудь, каким образом в ком.строке кодера указать имена выходящих файлов?
usage: lame.exe [options] <infile> [outfile]

Спасибо.

#2:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Wed Jun 11, 2008 03:14
    —
kadvlad
Путь запуска не нужен:
Code:
TOTALCMD#BAR#DATA
%ProgramFiles%\foobar2000\codecs\lame.exe -b 128
%S
%ProgramFiles%\Totalcmd\totalcmd.exe,2
Lame

-1
-1
Только это работает с одним файлом. Несколько файлов в командной строке lame, кажется, не позволяет. Подробно я не вникал.

kadvlad wrote:
каким образом в ком.строке кодера указать имена выходящих файлов?
А что ты хочешь указать? Если ничего не писать, как сейчас, то на выходе будет "исходный_файл.mp3".

#3:  Author: kadvlad PostPosted: Wed Jun 11, 2008 21:20
    —
Спасибо за содействие.

Искал ответ в "lame.exe -?" но не нашел. Неужели нельзя списком?
Ведь программы-конвертеры делают это..

Указать хочу либо новое имя (с индексом?) либо другой путь сохранения. Бывает, что нужно пережать из 320.mp3 в 128.mp3 Shocked для предпрослушек, или на маленькую флэшку перебросить для экономии Smile

Похожее решение раньше было: http://wincmd.ru/plugring/wcx_plugin_BitRate_Converter_0.html
Но в 7.03 почему-то не хочет ставиться.
Может, связаться с автором плагина?.. Сам я не разбираюсь в вопросе.

#4:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Wed Jun 11, 2008 22:36
    —
Программы-конвертеры запускают lame.exe несколько раз поочерёдно.
Для TC mozers написал скрипт List2Multi, который делает то же самое. Вот вроде последняя версия:
Code:
'  File:         List2Multi.vbs
'  Description:  Скрипт для загрузки выделенных в Total Commander файлов в заданную программу
'  Version:      1.2
'  Author:       mozers™
'  Comments:     Предназначен для программ НЕ поддерживающих загрузку нескольких файлов с ком.строки.
'                Поэтому скрипт вызывает программу многократно:
'                programm.exe [/param1 /param2] file1.ext
'                programm.exe [/param1 /param2] file2.ext
'                programm.exe [/param1 /param2] file3.ext
'  Sample:       Создаем кнопку на панели инструментов (или команду в меню "Запуск"):
'                Команда: %COMMANDER_PATH%\Utils\WSH\List2Multi.vbs "%ProgramFiles%\WinRAR\WinRAR.exe" X
'                Параметры: %L
' _________________________________________________________
Option Explicit
Dim WshShell, FSO, sProg, objArgs, FileList, sFile, count, param, i

Set objArgs = WScript.Arguments
Set WshShell = WScript.CreateObject("WScript.Shell")
sProg = WshShell.ExpandEnvironmentStrings(objArgs(0))
count = objArgs.Count
If count < 2 Then
   WshShell.Run """" & sProg & """", 1, False
Else
   param = ""
   For i = 1 To count-2
      param = param + " " + objArgs(i)
   Next
   Set FSO = CreateObject("Scripting.FileSystemObject")
   Set FileList = FSO.OpenTextFile(objArgs(count-1), 1, False)
   Do While Not FileList.AtEndOfStream
      sFile = FileList.ReadLine
      If Right(sFile,1) = "\" Then
         WshShell.Run """" & sProg & """", 1, False
         Exit Do
      End If
      WshShell.Run """" & sProg & """ " & param & " """ & sFile & """", 1, False
   Loop
End If
WScript.Quit

Кнопка будет такой
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WSH\List2Multi.vbs "%ProgramFiles%\foobar2000\codecs\lame.exe" -b 128
%L
%ProgramFiles%\Totalcmd\totalcmd.exe,2
Lame

-1
-1

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

А вот как быть в этом случае с переименованием/перемещением - даже мыслей нет.
У меня для этого специализированный софт стоит.


Last edited by Rodny on Wed Jun 11, 2008 22:49; edited 1 time in total

#5:  Author: kadvlad PostPosted: Wed Jun 11, 2008 22:44
    —
Ага, спасибо большое! Поковыряю.
Раньше видел этот скрипт, но даже не додумался искать решение так.
Wink

UPD. А может, как-то приспособить команду "wait" для поочередного запуска?


Last edited by kadvlad on Wed Jun 11, 2008 22:53; edited 1 time in total

#6:  Author: aLexxLocation: Новокузнецк PostPosted: Wed Jun 11, 2008 22:48
    —
У меня БитРейтКонвертер пашет в полный рост! На ТС 7.03.
Я теперь даже знаю, что на Мотор нельзя больше 300 песен закачать...
А вот на плеер (4 гб памяти) музона качнулось на 200 часов!
И это только любимое...

#7:  Author: Tol!kLocation: Арзамас PostPosted: Thu Jun 12, 2008 22:48
    —
у мну multiarc пашет как волк
; ---------------------------------------------------------
[L.A.M.E.]
Description=LAME http://www.mp3dev.org/
Extension=mp3,LAME
Archiver=lame.exe
Add=%P --abr 320 -k -f %FQA %AQA
Move=%P -b 192 -q2 %FQA %AQA
; ---------------------------------------------------------

#8:  Author: VolniyLocation: Местный PostPosted: Fri Jun 13, 2008 00:46
    —
kadvlad wrote:
А может, как-то приспособить команду "wait" для поочередного запуска?

Замени в скрипте строку
Code:
WshShell.Run """" & sProg & """", 1, False
на вот эту
Code:
WshShell.Run """" & sProg & """", 1, True


Это мое 400-ое сообщение и, надо же, такая неглубокая мысля...

#9:  Author: kadvlad PostPosted: Fri Jun 13, 2008 01:30
    —
Друзья, спасибо, почти получилось.
В скрипте поменял три строчки с false на true:

---------------------------------------------------------
Option Explicit
Dim WshShell, FSO, sProg, objArgs, FileList, sFile, count, param, i

Set objArgs = WScript.Arguments
Set WshShell = WScript.CreateObject("WScript.Shell")
sProg = WshShell.ExpandEnvironmentStrings(objArgs(0))
count = objArgs.Count
If count < 2 Then
WshShell.Run """" & sProg & """", 1, True
Else
param = ""
For i = 1 To count-2
param = param + " " + objArgs(i)
Next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FileList = FSO.OpenTextFile(objArgs(count-1), 1, False)
Do While Not FileList.AtEndOfStream
sFile = FileList.ReadLine
If Right(sFile,1) = "\" Then
WshShell.Run """" & sProg & """", 1, True
Exit Do
End If
WshShell.Run """" & sProg & """ " & param & " """ & sFile & """", 1, True
Loop
End If
WScript.Quit
-------------------------------------------------------

кнопка:
--------------------------------------------------------
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\List2Multi.vbs "%ProgramFiles%\foobar2000\codecs\lame.exe" --quiet -b 128
%L
%ProgramFiles%\Totalcmd\totalcmd.exe,2
Lame

1
-1
--------------------------------------------------------

Однако остались ещё вопросы:
1. Не удается заставить работать свернутым/скрытым DOS-окно.
Кодековский аргумент --quiet (или --silent) не помогает.

2. Сконвертированные файлы помещаются в ту же диреторию, а к текущему расширению дописывается еще одно новое: "track.mp3.mp3"

Согласен, это наглядно, а можно ли прописать НЕ новое расширение, а префикс: _track.mp3 ?
Что-нибудь типа такого же батника:

@for %%I in (*.mp3) do lame.exe --quiet "%%~nxI"

Спасибо.

#10:  Author: kadvlad PostPosted: Wed Jun 18, 2008 00:50
    —
Вот, выложил архивчик (6 Кб) с батниками для пакетной (?) обработки файлов (DOS, GUI).

Автор пишет так:
Quote:
- put this Batch-Command on your Desktop, so you can drag and drop wave files on it and LAME will encode them to mp3 format.
- put this Batch-Command in a place mentioned in your PATH environment, start the DOS-BOX and change to a directory where your wave files are located. the following line will encode all your wave files to mp3 "lame.bat *.wav"


Посмотрите, пожалуйста, кто понимает.
У меня не получилось сконфигурировать настройки и перетянуть на кнопку файлы.

#11:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Wed Jun 18, 2008 03:48
    —
Сразу говорю: я мало что понимаю Smile
Заставить работать bat-ы на кнопке у меня не получилось. А вот с Lame.vbs кое-какие результаты есть.
А именно по второму вопросу из предыдущего поста:
"можно ли прописать НЕ новое расширение, а префикс: _track.mp3 ?"
В скрипте есть функция
Code:
Function getBasename(filespec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFile(filespec)
 
  getBasename = f.ParentFolder & "\" & fso.GetBaseName(filespec)
End Function

Я по аналогии добавил другую:
Code:
Function getBasename1(filespec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFile(filespec)
 
  getBasename = f.ParentFolder & "\_" & fso.GetBaseName(filespec)
End Function

Т.е. непосредственно перед именем исходного файла теперь добавляется подчёркивание. Туда, естественно, можно вписать что-то другое.
Дальше заменил в 109-й строке вызов getBasename(infile) на getBasename1(infile). И, само собой, пути к lame.exe и опции прописал.
Кнопка такого вида:
Code:
TOTALCMD#BAR#DATA
D:\Programs\Lame\Lame.vbs
%S
C:\WINDOWS\System32\WScript.exe
Lame


-1

Файлы на неё не перетаскивать! Выделять, а потом просто нажимать кнопку. С папками скрипт не работает в принципе.

Теперь что касается
Quote:
1. Не удается заставить работать свернутым/скрытым DOS-окно.
Кодековский аргумент --quiet (или --silent) не помогает.
Они же не это делают. В справке про оба написано: "don't print anything on screen". И они действительно ничего не выводят. А непосредственно окном они не управляют.

#12:  Author: Dimych PostPosted: Thu Jun 19, 2008 00:41
    —
Вот батничек

Code:
@echo off
setlocal
REM Имя командного файла на выполнения кодирования
set RUNCMDFILE=StartLame.cmd
REM Путь для командного файла на выполнения кодирования
set RUNCMDPATH=%TEMP%
REM Полный путь к кодировщику
set BINFULLPATH=%ProgramFiles%\foobar2000\codecs\lame.exe
REM Суффикс для добавления к выходному файлу
set OUTSFX=_lame
REM Путь для сохранение выходных файлов (!!! C ПОСЛЕДНИМ CЛЭШЭМ !!!)
REM Если не задать - будет использоваться путь исходных файлов.
set OUTPATH=
REM Oпции кодирования Lame
set CODEOPT=-b 128
if "%OUTPATH%"=="" set OUTPATH=.\
if "%OUTPATH%"=="." set OUTPATH=.\
REM Создание командного файла на кодирование
echo. > "%RUNCMDPATH%\%RUNCMDFILE%"
echo REM Coding through LAME Encoder>> "%RUNCMDPATH%\%RUNCMDFILE%"
echo @echo off >> "%RUNCMDPATH%\%RUNCMDFILE%"
echo. >> "%RUNCMDPATH%\%RUNCMDFILE%"
echo chcp 1251 ^> nul>> "%RUNCMDPATH%\%RUNCMDFILE%"
for /F "delims=" %%i in (%1) do (
    >>"%RUNCMDPATH%\%RUNCMDFILE%" echo cls
    >>"%RUNCMDPATH%\%RUNCMDFILE%" echo echo.
    >>"%RUNCMDPATH%\%RUNCMDFILE%" echo echo Coding now: "%%~ni%OUTSFX%.mp3"
    >>"%RUNCMDPATH%\%RUNCMDFILE%" echo echo.
    >>"%RUNCMDPATH%\%RUNCMDFILE%" echo "%BINFULLPATH%" %CODEOPT% "%%i" "%OUTPATH%%%~ni%OUTSFX%.mp3"
)
echo exit >> "%RUNCMDPATH%\%RUNCMDFILE%"
REM Запуск командного файла на кодирование
start "Coding through LAME Encoder, please wait..." /min /D"%RUNCMDPATH%" "%RUNCMDFILE%"
endlocal
exit


Стартует свернувшись, в параметрах кнопки - %L
Прицип работы: создает командный файл (здесь StartLame.cmd в %TEMP%) и запускает на выполнение.

#13:  Author: Dimych PostPosted: Thu Jun 19, 2008 01:00
    —
Небольшая правка:
1. Параметры кнопки %L %P
2.
Code:
if "%OUTPATH%"=="" set OUTPATH=%2
if "%OUTPATH%"=="." set OUTPATH=%2

#14:  Author: VolniyLocation: Местный PostPosted: Thu Jun 19, 2008 02:39
    —
kadvlad wrote:
Однако остались ещё вопросы:
1. Не удается заставить работать свернутым/скрытым DOS-окно.
Кодековский аргумент --quiet (или --silent) не помогает.

Попробуй в скрипте, там где
Code:
WshShell.Run """" & sProg & """", 1, True
написать, соответственно
Code:
WshShell.Run """" & sProg & """", 6, True
или
Code:
WshShell.Run """" & sProg & """", 0, True

PS сам не проверял...

#15:  Author: kadvlad PostPosted: Thu Jun 19, 2008 12:52
    —
Друзья,

спасибо большое всем!
На выходных обязательно попробую все предложенные варианты, о результатах отпишусь.
Wink

#16:  Author: LocKtaR-o-DarKLocation: Москва PostPosted: Thu Jun 26, 2008 12:05
    —
можно конечно мучаться с кнопками и скриптами, но уже давно существует маленькая программка LameDropXPd

#17:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Dec 06, 2009 23:57
    —
Tol!k wrote:
у мну multiarc пашет как волк
; ---------------------------------------------------------
[L.A.M.E.]
Description=LAME http://www.mp3dev.org/
Extension=mp3,LAME
Archiver=lame.exe
Add=%P --abr 320 -k -f %FQA %AQA
Move=%P -b 192 -q2 %FQA %AQA
; ---------------------------------------------------------


Есть мультиарк, в папку его закинуть Lame.exe и dll-ка есть к нему.
Добавить [L.A.M.E.] в INI.
А как юзать?
Через ALT+F5?


Last edited by ask-rus on Mon Dec 07, 2009 01:11; edited 1 time in total

#18:  Author: ask-rusLocation: Russian Federation PostPosted: Mon Dec 07, 2009 00:27
    —

#19:  Author: Tol!kLocation: Арзамас PostPosted: Mon Dec 07, 2009 00:47
    —
ackep wrote:
А как юзать?
Установить мультиарк; с мультиарком ассоциировать расширение mp3
И "упаковывать" в mp3. Это Alt+F5

ackep wrote:
Кнопка, не работает...
Что за "%in% %out%" ? Читай справку про параметры, передаваемые Тоталом
Code:
-V0 -b192 --vbr-new -q 0 -m s -p --lowpass 22 --ns-sfb21 2 --priority 3 %N "%0_repack.mp3"

ackep wrote:
%L не работает
LAME списки не понимает. Читай справку LAME и предыдущюю страницу

#20:  Author: ask-rusLocation: Russian Federation PostPosted: Mon Dec 07, 2009 00:54
    —
Ага, читал.
Здесь: не "%0_repack.mp3", а "%O_repack.mp3".
Глаза слипаются, понимаю.
Спасибо большое.

#21:  Author: Tol!kLocation: Арзамас PostPosted: Mon Jan 17, 2011 00:30
    —
Понадобилось перекодировать альбом. Вот
Code:
@echo off &setlocal enableextensions
rem Пример параметров для TC: %WL "-q 0 -V 0 --lowpass 22" "%T"
set "lame=lame %~2 --priority --add-id3v2 --pad-id3v2-size 2048"
set "trgt=%~3"

for /f "usebackq delims=" %%a in (`type "%~1"`) do call :f "%%a"
rem pause
goto :eof

:f
for /f "tokens=1,* delims=: " %%b in ('tag --stdout %1 ^|findstr /c::') do (
set "t%%b=%%~c"
)
%lame% --tt "%tTitle%" --ta "%tArtist%" --tl "%tAlbum%" --ty "%tYear%" --tc "%tComment%" --tn "%tTrack%" --tg "%tGenre%" %1 "%trgt%%~n1_repack.mp3"
echo,
goto :eof

Ахтунг: уникодные теги теряются

#22:  Author: Dimsok PostPosted: Tue Oct 07, 2014 23:55
    —
Сделал кнопку для конвертации wav в mp3

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Plugins\exe\balabolka\lame.exe"
%V --priority -b 32 -h --tt %O --ta Dimsok --tg Audiobook %P%O.mp3
%COMMANDER_PATH%\Plugins\exe\balabolka\lame.exe
Convert to mp3
%COMMANDER_PATH%\Plugins\exe\balabolka\
1
-1

Только вот в lame нет параметра удаления wav вайла после конверсии. Можно ли как-то модифицировать кнопку, чтобы удалить исходный файл средствами тотала?

#23:  Author: Skif_off PostPosted: Wed Oct 08, 2014 00:34
    —
Dimsok
Средствами ТС - нет, оберните в cmd, что-то вроде
Code:
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

&& - значит, что следующая команда сработает только после успешного завершения предыдущей.

#24:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Oct 08, 2014 08:39
    —
Два предыдущих сообщения перенесены из другой темы, где являются оффтопом.

#25:  Author: Dimsok PostPosted: Wed Oct 08, 2014 11:08
    —
Почему оффтоп? Темы-то связаны. И потом темы должны как-то перекликаться между собой

#26:  Author: Skif_off PostPosted: Wed Oct 08, 2014 11:51
    —
Dimsok wrote:
Темы-то связаны

Если только папкой "%COMMANDER_PATH%\Plugins\exe\balabolka\" Smile Напоминаю, на всякий случай.
Вы не ответили, команда сработала?

#27:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Oct 08, 2014 11:54
    —
Dimsok
Офффтоп потому, что это уже совершенно другая задача, даже если в ней и упомянуто слово "balabolka". А для переклички тем между собой поставлены перекрёстные ссылки. Решение о переносе принято и больше обсужаться не будет. Ссылка на правила форума — в предыдущем посте.

#28:  Author: Dimsok PostPosted: Wed Oct 08, 2014 13:07
    —
Skif_off wrote:
Dimsok wrote:
Темы-то связаны

Если только папкой "%COMMANDER_PATH%\Plugins\exe\balabolka\" Smile Напоминаю, на всякий случай.
Вы не ответили, команда сработала?


Не сработало. Не только папкой "%COMMANDER_PATH%\Plugins\exe\balabolka\". Просто при переводе текста в wav имеет смысл перевести в более компактный формат. Напрямую как в ogg что-то плохо получается (ускоренное воспроизведение, качество не очень). Ой, что-то я оффтоплю, а то перенесется обратно

#29:  Author: FlasherLocation: Москва PostPosted: Wed Oct 08, 2014 13:44
    —
Dimsok
Под "оберните" понималась кнопка с последовательным указанием строк для полей "Команда" и "Параметры". Верно было понято?
Плюс к этому %O и %P%O.mp3 нужно заключать в кавычки для базового имени (в т.ч. с путём) к потенциальному файлу с пробелами.

#30:  Author: Dimsok PostPosted: Wed Oct 08, 2014 13:51
    —
Под "оберните" я понял, что надо предложенный код сохранит в пакетный файл и добавить как кнопку с соответствующими параметрами

Добавлено спустя 6 минут:

Ладно, все, допер. Просто меня смутило, высказывание, что средствами тотала нельзя, и надо что-то "оборачивать". Думал надо файл cmd создавать. По сути обычная кнопка. Я это и подразумевал под выражением "средствами тотала"
Зачем в кавычки? вроде и так нормально. И теги прописываются

#31:  Author: Skif_off PostPosted: Wed Oct 08, 2014 14:06
    —
Dimsok wrote:
По сути обычная кнопка. Я это и подразумевал под выражением "средствами тотала"

Фактически, ТС просто запускает, del /f /q - это уже консоль.
Прошу прощения, думал - понятно. Кнопка целиком, на всякий случай
 Hidden text

Dimsok wrote:
Зачем в кавычки? вроде и так нормально.

Просто путь или имя файла с пробелами ещё не попались.

#32:  Author: Dimsok PostPosted: Wed Oct 08, 2014 14:24
    —
А вот эта кнопка с кавычками как раз и не работает

Да, и кроме этих двух параметнов, никакие ещё в кавычки брать не следует?

#33:  Author: Skif_off PostPosted: Wed Oct 08, 2014 15:54
    —
Dimsok
Я с телефона, что-то мог проглядеть, прошу прощения, сравните с рабочей. Про кавычки: Flasher, в принципе, всё перечислил для вашего случая, а так - все, кроме %P%N и %V, пути и имена нужно обрамлять кавычками. Осталось самому запомнить Smile) Когда привыкаешь по возможности не использовать пробелы в именах - это действует разлагающе.

#34:  Author: Dimsok PostPosted: Wed Oct 08, 2014 16:07
    —
Так эта кнопка без кавычек работает (там, где это позволяют имена), а с кавычками - никакой реакции

#35:  Author: FlasherLocation: Москва PostPosted: Wed Oct 08, 2014 18:07
    —
Skif_off wrote:
а так - все, кроме %P%N и %V, пути и имена нужно обрамлять кавычками
Не только %P%N и %V, ещё как минимум 27 вариантов, не считая комбинаций с %Z и %X.

Dimsok
Поставь ещё кавычку перед %С и в конце параметров.

#36: Настройка кнопки конвертации аудиофайлов Author: KarSLocation: г. Абакан PostPosted: Thu Aug 29, 2019 14:30
    —
Всем привет!
Хотелось бы настроить кнопку для конвертации аудиофайлов, например FLAC-mp3.

Для конвертации пробую разные приложения, которые поддерживают работу с командной строкой.

1. Так, для Total Audio Converter работает:
Code:
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 - более гибкая программа.

Code:
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?

#37:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Aug 29, 2019 16:13
    —
KarS
Неужели так трудно выяснить, в каких темах какого подфорума делаются запросы на кнопки (и вообще и для конкретного случая)? В любом случае это никаким образом не "Общие вопросы". Про необходимость пользоваться поиском по форуму вам уже в своё время писали.
Перенесено по принадлежности.

#38:  Author: KarSLocation: г. Абакан PostPosted: Fri Aug 30, 2019 10:10
    —
Avada,
Спасибо, что поправили.

У меня получилось сделать кнопку для xrecode3:
Code:
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

Правда по команде при выполнении конвертации отображается окно консоли. Как скрыть, не знаю.

#39:  Author: FlasherLocation: Москва PostPosted: Fri Aug 30, 2019 15:53
    —
KarS
Конкретно по xrecode у нас имеется тема.

Без прослоек:
Quote:
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).

#40:  Author: KarSLocation: г. Абакан PostPosted: Fri Aug 30, 2019 17:37
    —
Flasher,
большое спасибо!
И за то, что поделились кодом, и за актуальные ссылки!

Мне Ваш вариант понравился: не нужно платных утилит, можно всё настроить.
В xrecode нашёл интересный ключ: /fileexists - позволяет выбрать, при совпадении имени выходного файла с существующим в папке что делать - переписать или переименовать (добавив в конце _1).
Скажите, можно в Вашем коде реализовать автоматическое переименование при совпадении имён полученных файлов?
Думаю, это было бы удобно, чтобы можно было сравнить полученные файлы по размеру, если они были сделаны с разными параметрами строки.

#41:  Author: FlasherLocation: Москва PostPosted: Fri Aug 30, 2019 21:08
    —
KarS
Пож-та.
Счётчик через кнопку, наверно, не выйдет. VBS устроит?
Code:
'================================= 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', будет асинхронный запуск, но тогда ЦП забъётся.

Last edited by Flasher on Fri Sep 06, 2019 01:36; edited 1 time in total

#42:  Author: KarSLocation: г. Абакан PostPosted: Sat Aug 31, 2019 07:51
    —
Flasher, замечательно! Very Happy
У VBS конечно возможностей больше.
Очень дружелюбно сделано:
- есть отдельная строка для параметров кнопки - задаём параметры конвертации
- предусмотрено редактирование путей размещения кодеков
- окно консоли не появляется
- есть сообщение, если пользователь не настроил параметры конвертации
- есть сообщение об окончании конвертации (я как раз думал об этом, ведь не понятно, сколько ждать (окончена конвертация или нет), если собрался переместить полученный файл дальше).
Большое спасибо!

Я использую конвертацию, чтобы из своих архивных записей выбирать файлы на флешку с любимыми композициями в формате mp3 256.
В архиве у меня файлы в форматах WAV, FLAC, APE, mp3 (cbr320).
Думаю, что с конвертацией FLAC-mp3 вопрос решён.
Но можно как-нибудь добавить в скрипт распознавание на входе WAV, FLAC, APE, mp3, чтобы он на выходе всё конвертил в mp3 с нужными параметрами?
Это было бы очень удобно, и можно было бы это поместить в коллекцию и рекомендовать другим. Smile

#43:  Author: Skif_off PostPosted: Sat Aug 31, 2019 12:26
    —
Всё-таки система может быть достаточно производительная, наверное, можно попробовать отслеживать количество процессов кодировщика (SELECT * FROM Win32_Process WHERE Name = ..., потом Count): если, например, больше 4, то для очередного запуска WaitOnReturn равно true и наоборот.
Оно, конечно, не всегда будет красиво работать, но всё одно не по очереди и не всей кучей сразу.

#44:  Author: FlasherLocation: Москва PostPosted: Sat Aug 31, 2019 20:37
    —
KarS wrote:
Но можно как-нибудь добавить в скрипт распознавание на входе WAV, FLAC, APE, mp3
Так и думал, что всё исходным запросом не закончится. Набор понятен, но опять же чисто под частные нужности. Т.е. подразумевается забыть про другие не менее значимые форматы аудио.
Неполный набор, представленный в некоторых конвертерах:
Quote:
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.
Но на написание полноценного скриптового аудио-конвертера я точно не рассчитывал. Smile

#45:  Author: KarSLocation: г. Абакан PostPosted: Sun Sep 01, 2019 06:49
    —
Flasher, большое спасибо за Ваше участие.
То, что вы сделали, - это очень хорошо.

#46:  Author: goldy PostPosted: Wed Feb 08, 2023 16:41
    —
Добрый день. Помогите реализовать конвертер flac в mp3 с помощью кнопки.

Выделяешь кучу папок, нажимаешь на нее и она конвертирует FLAC в соседнюю панель MP3 (320kbps), а потом там меняет в имени папки FLAC на MP3
или
Выделяешь кучу папок, нажимаешь на нее и она конвертирует в текущую панель FLAC в MP3 и меняет в имени папки FLAC на MP3



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group