Вопрос: Как конвертировать несколько файлов одного типа (например, wav в mp3) с помощью VLC или Audacity за один удар?


У меня есть 10 wav-файлов. Я хочу преобразовать их в mp3-файлы. Мне удалось это сделать для одного файла (как описано в Как конвертировать медиа с помощью VLC?), но я не хочу делать это для каждого отдельного файла. Есть ли способ конвертировать все 10 файлов за один удар? Я использую окна 7.


4
2017-07-08 15:48


Источник


возможный дубликат Пакетное преобразование .wav в mp3 и ogg? - nixda


Ответы:


Я последовал за предложением nixda и использовал пакетный скрипт. Я понял, как программировать пакет для окон 7. Это мое решение:

@echo off
for /f "delims=|" %%f in ('dir /b C:\Any_Directory\*.wav') do (
echo converting      %%f
CALL "C:\Program Files\VideoLAN\VLC\vlc.exe" --intf dummy --dummy-quiet "%%f" --sout="#transcode{acodec=mp3,ab=256,vcodec=dummy}:standard{access=file,mux=raw,dst=MP3_Files/"%%f"}"  vlc://quit
move "%%f" WAV_converted/"%%f"
)

cd MP3_Files
ren *.wav *.mp3
cd ..

echo .
echo .
echo .
echo conversion finished
pause

Как работает программа:

  • Все файлы с расширением .wav в указанной папке «C: \ Any_Directory \» преобразуются в mp3 (имена файлов не должны содержать пробелов)
  • Mp3-файлы сохраняются в папке «MP3_Files» (которая уже должна существовать)
  • Файлы wav помещаются в папку «WAV_converted» (которая уже должна существовать)
  • «ab = 256» устанавливает скорость передачи битов. Для преобразования с помощью, например, бит 128, замените его на «ab = 128».
  • Пакетный файл должен запускаться из той же папки, что и файлы, которые вы хотите конвертировать (как упоминал Кевин Хайдт)

Советы  - Удалите из сценария «-intf dummy -dummy-quiet», если вы хотите увидеть графический интерфейс VLC при конвертировании. Может быть полезно для отладки.

Обновить Есть еще одна ошибка: если имя wav-файла содержит точку или запятую, имя усекается (и добавление не добавляется!). Несмотря на это, файл конвертируется. Протестировано с версией 1.1.11. Новые версии могут не работать!

Добавлен знак цитаты: --sout = "...". Работает и для новых версий. Протестировано с версией 2.1.3 64-бит в Windows (см. Вики-страница VLC для отличий в командной строке для Linux и Windows и дополнительных примеров и опций).


10
2017-07-09 11:48



Примечание. Предполагается, что ваш пакетный файл запускается из той же папки, что и файлы, которые вы хотите преобразовать (папка D: \ xyz "\ VLC_batch) - Kevin Heidt
отличный материал. - roel
видеолента мертва ... - Kev
Это по-прежнему хорошее и эффективное решение. Одна запись; Я использовал его для преобразования загрузки файлов Soundcloud, и все, что было присвоено SC, с%, преобразованным в файл с нулевой длиной. Достаточно легко установить имена файлов, хотя. - Whelkaholism
Он также не похож на круглые скобки в имени файла. - Whelkaholism


Я использовал VLC для преобразования аудио для набора видеофайлов, но такой же подход может помочь в любой задаче перекодирования. Вы должны создать простой .bat-файл:

for %%a in (*.avi) do "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" -I dummy -vvv "%%a" --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=22050}:standard{access=file,mux=ts,dst="%%a_conv.avi"} --sout-keep vlc://quit
  • Этот командный файл будет сканировать все * .avi-файлы в одной папке и перекодировать их с заданными параметрами, описанными в Sout = # перекодировать {Титулы}
  • Чтобы узнать, какие параметры вы должны использовать, вам нужно выбрать Menu-> Media-> Stream ... и выберите все параметры в GUI-мастере. На последнем шаге мастера вы увидите сгенерированную строку параметров, которую вы должны использовать в своем пакетном файле.
  • Выходные файлы будут иметь _conv.avi суффикс, измените его, если вам нужно другое расширение

0
2017-07-12 20:03





Чтобы добавить аналогичный подход, найденный на SO:

Изменения, которые я сделал, позволяет пробелы в именах каталогов и в именах песен как это часто бывает (всегда).

@echo off
chcp 65001
SETLOCAL ENABLEDELAYEDEXPANSION

for /f "delims=" %%f IN ('dir /b /s "YOUR_DISK:\Path\To\Your Music\That May contain Spaces\*.wav"') do (
set file1=%%~nf.mp3
echo "file :" !file1!
set fic1=%%f
echo "file : " !fic1!

CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"  "!fic1!" --sout="#transcode{vcodec=none,acodec=mp3,ab=320,channels=2,samplerate=48000}:std{access=file{no-overwrite},mux=mp3,dst="""!file1!"""}" vlc://quit
)

echo .
echo conversion finished
pause

0
2017-11-09 16:01



Ницца ... хорошая работа. Теперь, чтобы заставить его принять путь в качестве аргумента и разрешить все допустимые символы в именах файлов (в настоящее время не удается, если в нем есть имя файла, например, «!») - Krakkos