Làm cách nào để chuyển đổi một số tệp thuộc một loại (ví dụ: wav sang mp3) bằng VLC hoặc Audacity trong một cú đánh?


4

Tôi có 10 tập tin wav. Tôi muốn chuyển đổi tất cả chúng thành mp3-Files. Tôi đã quản lý để điều này cho một tệp duy nhất (như được mô tả trong Cách chuyển đổi phương tiện bằng VLC? ), Nhưng tôi không muốn làm điều này cho mỗi tệp duy nhất. Có cách nào để chuyển đổi tất cả 10 tập tin trong một cú đánh không? Tôi đang sử dụng windows 7.


Câu trả lời:


10

Tôi đã làm theo gợi ý của nixda và sử dụng một tập lệnh bó. Tôi đã tìm ra cách lập trình một lô cho windows 7. Đây là giải pháp của tôi:

@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

Chương trình hoạt động như thế nào:

  • Tất cả các tệp có phần mở rộng .wav trong thư mục được chỉ định "C: \ Any_Directory \" được chuyển đổi thành mp3 (tên tệp không được chứa bất kỳ khoảng trắng nào)
  • Các tệp mp3 được lưu trong thư mục "MP3_Files" (phải tồn tại)
  • Các tệp wav được đẩy vào thư mục "WAV_converted" (phải tồn tại)
  • "Ab = 256" đặt tốc độ bit. Để chuyển đổi với tốc độ bit 128, thay thế nó bằng "ab = 128".
  • Tệp bó phải được chạy từ cùng thư mục với các tệp bạn muốn chuyển đổi (như được đề cập bởi Kevin Heidt)

Gợi ý - Xóa "--intf dummy --dummy-quiet" khỏi tập lệnh nếu bạn muốn xem GUI VLC trong khi chuyển đổi. Có thể hữu ích để gỡ lỗi.

Cập nhật Vẫn còn một lỗi: Nếu tên của tệp wav chứa dấu chấm hoặc dấu phẩy, tên đó bị cắt ngắn (và không có phần mở rộng nào được thêm vào!). Các tập tin được chuyển đổi mặc dù điều này. Đã thử nghiệm với Phiên bản 1.1.11. Phiên bản mới hơn có thể không hoạt động!

Đã thêm dấu ngoặc kép: --sout = "...". Hoạt động cho các phiên bản mới hơn, quá. Đã thử nghiệm với Phiên bản 2.1.3 64 bit trên Windows (xem trang wiki VLC để biết sự khác biệt trong dòng lệnh cho Linux và Windows và các ví dụ và tùy chọn bổ sung).


1
Lưu ý: điều này giả sử tệp bó của bạn đang được chạy từ cùng thư mục với các tệp bạn muốn chuyển đổi (thư mục D: \ "xyz" \ VLC_batch)
Kevin Heidt

1
liên kết videolan đã chết ...
Kev

Đây vẫn là một giải pháp tốt và làm việc. Một lưu ý; Tôi đã sử dụng nó để chuyển đổi tải các tệp Soundcloud của mình và tất cả những gì SC đã đặt tên với% được chuyển đổi thành tệp có độ dài bằng không. Đủ dễ dàng để sửa tên tập tin đầu tiên mặc dù.
Chủ nghĩa cá nhân

Nó cũng không thích dấu ngoặc đơn trong tên tệp.
Chủ nghĩa cá nhân

0

Tôi đã sử dụng VLC để chuyển đổi âm thanh cho một tập hợp các tệp video nhưng cách tiếp cận tương tự có thể giúp ích trong mọi tác vụ chuyển mã. Bạn nên tạo một tệp .bat đơn giản:

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
  • Tệp bó này sẽ quét tất cả các tệp * .avi trong cùng một thư mục và chuyển mã chúng với một tham số đã cho được mô tả trong sout = # transcode { params }
  • Để biết những thông số nào bạn nên sử dụng, bạn cần chọn Menu-> Media-> Stream ... và chọn tất cả các thông số trong GUI wizard. Ở bước hướng dẫn cuối cùng, bạn sẽ thấy chuỗi params được tạo mà bạn nên sử dụng trong tệp bó của mình.
  • Các tệp đầu ra sẽ có hậu tố _conv.avi , hãy thay đổi nó nếu bạn cần một phần mở rộng khác

0

Để thêm một cách tiếp cận tương tự được tìm thấy trên SO:

Những thay đổi tôi đã thực hiện, cho phép khoảng trắng trong tên thư mục và trong tên bài hát như thường lệ (luôn luôn).

@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

Tốt ... công việc tốt. Bây giờ để làm cho nó chấp nhận một đường dẫn làm đối số và cho phép tất cả các ký tự được chấp nhận trong tên tệp (hiện không thành công nếu tên tệp có ví dụ '!' Trong đó)
Krakkos
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.