ฉันมีไฟล์. wav สองสามร้อยไฟล์ที่ฉันต้องแปลงเป็นรูปแบบ ogg และ mp3 มีวิธีที่ฉันสามารถทำได้ในชุดจากความกล้าหรือจากเครื่องมือบรรทัดคำสั่งอื่น ๆ ?
ฉันมีไฟล์. wav สองสามร้อยไฟล์ที่ฉันต้องแปลงเป็นรูปแบบ ogg และ mp3 มีวิธีที่ฉันสามารถทำได้ในชุดจากความกล้าหรือจากเครื่องมือบรรทัดคำสั่งอื่น ๆ ?
คำตอบ:
จากบรรทัดคำสั่ง Unix-like (Linux, OSX, ฯลฯ ) สามารถใช้ ffmpeg ดังนี้:
for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}"; done
สิ่งนี้จะแปลงทุก WAV ในไดเรกทอรีเป็น MP3 และ OGG หนึ่งรายการ โปรดทราบว่ามันต้องตรงตามตัวพิมพ์ใหญ่ - เล็ก (คำสั่งด้านบนจะแปลงทุกไฟล์ที่ลงท้ายด้วย. wav แต่ไม่ใช่. WAV) หากคุณต้องการรุ่นที่ไม่ตรงตามตัวพิมพ์ใหญ่ - เล็ก:
for f in *.{wav,WAV}; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f%.*}.mp3" -c:a libvorbis -q:a 4 "${f%.*}.ogg"; done
ในการแปลงทุก WAV ในไดเรกทอรีซ้ำ (นั่นคือ: ทุก WAV ในไดเรกทอรีปัจจุบันและไดเรกทอรีทั้งหมดในไดเรกทอรีปัจจุบัน) คุณสามารถใช้find
:
find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}' '{}' \;
(ความเคารพสูงสุดกับเดนนิสสำหรับการตอบสนองของเขาที่นี่เพื่อหาฉันการใช้งานการค้นหาด้วย ffmpeg)
สำหรับการค้นหากรณีตายด้วยหาใช้แทน-iname
-name
หมายเหตุเกี่ยวกับ-q:a
: สำหรับ MP3 ช่วงคุณภาพคือ 0-9 โดยที่ 0 มีคุณภาพดีที่สุดและ 2 ดีพอสำหรับคนส่วนใหญ่ในการแปลงเสียงซีดี สำหรับ OGG มันคือ 1-10 โดยที่ 10 ที่ดีที่สุดและ 5 เท่ากับคุณภาพซีดีสำหรับคนส่วนใหญ่
find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
'
ได้ไม่ตรงกัน
$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; done
สำหรับ 320 kbps mp3 เท่านั้น
คุณสามารถใช้foobar2000พร้อมโปรแกรมเปลี่ยนไฟล์สำหรับ ogg และ mp3 ผมเชื่อว่าคุณสามารถหาเข้ารหัสที่rarewares
ดาวน์โหลด ffmpeg จากลิงค์ด้านล่างและติดตั้ง: http://ffmpeg.zeranoe.com/builds/
สร้างและเรียกใช้ไฟล์แบตช์ด้วยคำสั่งด้านล่าง:
echo converting *.wav to *.ogg
mkdir ..\Ogg
for /r %%i in (*) do ffmpeg -i %%i -acodec libvorbis ..\Ogg\%%~ni.ogg
ไฟล์ * .ogg ที่ถูกแปลงทั้งหมดจะถูกคัดลอกไปยังไดเรกทอรี .. \ Ogg
ฉันเปลี่ยนเป็นไฟล์ bat ที่ฉันพบใน SO ตอนนี้เกี่ยวข้องกับช่องว่างในชื่อไฟล์เพราะมักจะเป็นกรณีในชื่อเพลง ไฟล์ bat นี้แปลง. wav เป็น. mp3 โดยใช้เครื่องมือบรรทัดคำสั่ง VLC แต่คุณสามารถเปลี่ยนเป็นรูปแบบ wma -> mp3 และอื่น ๆ ...
@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
chcp เปลี่ยนการเข้ารหัส (เพื่อจัดการกับอักขระที่เน้นเสียง) ab เป็นอัตราบิตที่นี่ 320