Chuyển đổi wma sang mp3 hàng loạt mà không thay đổi thư mục


8

Tôi có hàng ngàn bản nhạc ở định dạng WMA từ khi tôi sử dụng Windows Media Player để trích xuất CD. Bây giờ tôi gặp vấn đề khi chơi chúng trên máy tính để bàn Linux của tôi tại nơi làm việc.

Có một giải pháp tốt (cho Windows hoặc Linux) để chuyển đổi tất cả các WMA thành MP3 trong khi để chúng trong cùng thư mục như trước không? Tôi đã thử sử dụng iTunes để làm điều đó, nhưng nó đã bắt đầu tạo các thư mục mới để lưu trữ tất cả các bản nhạc được chuyển đổi mà tôi không muốn.


1
Trong Linux (bản phân phối nào, nhân tiện?) Một số kết hợp find -execdirffmpegnên làm điều đó, nhưng tôi sẽ chạy thử nghiệm trước khi tôi đăng câu trả lời.
William Jackson

2
Hãy lưu ý rằng bất cứ khi nào bạn chuyển đổi giữa các định dạng mất, bạn sẽ mất chất lượng. Việc giảm chất lượng có thể nghe được hay không phụ thuộc vào chất lượng ban đầu, bộ mã hóa bạn đang sử dụng cho mã hóa, thiết bị phát lại và tai của bạn. Nếu là tôi, tôi sẽ xem xét việc trích xuất lại đĩa CD (nếu có thể) thay vì chuyển mã. Mặc dù tôi biết rằng mất nhiều thời gian hơn. Bạn cũng có thể xem xét việc lưu trữ các đĩa CD đã sao chép của mình ở định dạng lossless (FLAC là mục ưa thích của tôi, nhưng có một số khác) và chuyển mã đó sang MP3 cho trình phát MP3 di động của bạn, v.v ... Điều đó tất nhiên cần nhiều dung lượng đĩa hơn.
Flimzy

@William: Tại nơi làm việc tôi sử dụng openSUSE, ở nhà tôi sử dụng linux mint (ubfox) và windows 7. Tôi sẽ phải kiểm tra ffmpeg khi có thời gian và xem liệu tôi có thể viết tập lệnh bash hay gì không. Nếu bạn đăng câu trả lời có hiệu quả thì tôi sẽ đánh dấu câu đó
Eddy

@Flimzy: Tôi sẽ thử chuyển đổi một vài bản nhạc và kiểm tra bằng tai xem tôi có nhận thấy sự giảm chất lượng không. Tôi không phải là một audiophile nên tôi nghi ngờ nó có thể ổn với tôi, nhưng an toàn hơn là xin lỗi tôi cho rằng
Eddy

Tôi sử dụng DB PowerAmp Music Converter cho phần mềm này, phần mềm tuyệt vời nhưng không miễn phí (yêu cầu phải có giấy phép mp3) ... dbpoweramp.com/dmc.htm
Moab

Câu trả lời:


6

Nếu bạn có hàng ngàn tệp, thì việc này sẽ mất mãi mãi.

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k -map_metadata 0:s:0 {}.mp3 \;

(Phiên bản cũ hơn của ffmpeg có thể cần -map_meta_datathay vì -map_metadata, 0:0thay vì 0:s:0.)

Tôi đã thử nghiệm điều này trên Ubuntu 16.04. Nếu bạn chưa có, bạn cần cài đặt các gói ffmpeglibavcodec-extra-52.

Bắt đầu lệnh này từ thư mục mẹ có chứa tất cả các tệp WMA của bạn. Nó sẽ tìm kiếm thông qua tất cả các thư mục con cho bất kỳ tệp nào có .wmaphần mở rộng và cố gắng chuyển đổi nó thành MP3. Nếu tệp nguồn được đặt tên Awesome Song.wma, tệp mới sẽ Awesome Song.wma.mp3và sẽ nằm trong cùng thư mục với tệp nguồn.

Nếu bạn thường sử dụng bitrate cao hơn hoặc thấp hơn 192k, hãy thay đổi -ab 192kcờ thành bất cứ điều gì bạn muốn.


1

Cờ được thêm này sẽ báo cho ffmpeg thử và bảo toàn các thẻ ID3:

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k **-map_metadata 0:0** {}.mp3 \;

1

Cái này tìm các tệp WMA, chuyển đổi chúng thành MP3 với tên mở rộng rõ ràng .mp3thay vì .wma.mp3và xóa tệp cũ. Điều này đã được thử nghiệm để hoạt động trên Fedora 19 trong khi tìm kiếm các tệp WMA thông qua các tệp có giá trị 150 GB được sắp xếp theo artist/album/<disk number>/file.

find . -iname "*.wma" -execdir bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" && rm "$NAME"' \;

Hoạt động trong máy Mac, dường như cũng bảo tồn một số siêu dữ liệu. Mặc dù tôi đã nhận được rất nhiều Queue input is backward in time [mp3 @ 0x7fbffb02ba00] Application provided invalid, non monotonically increasing dts to muxer in streamcảnh báo.
adib


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.