Làm cách nào để chuyển đổi sang AAC?
Đây là lệnh FFmpeg cơ bản nhất để chuyển đổi đầu vào thành âm thanh AAC bằng AAC FFmpeg chất lượng cao nhất có. libfdk_aac
là bộ mã hóa Fraunhofer AAC và nó có sẵn khi bạn biên dịch FFmpeg với sự hỗ trợ cho nó.
ffmpeg -i input.mp3 -c:a libfdk_aac output.m4a
Để thay đổi chất lượng, bạn có hai tùy chọn:
Đối với bitrate biến (VBR), sử dụng -vbr
tùy chọn. Ví dụ, -vbr 4
là một lựa chọn tốt (khoảng 128 kBit / s cho âm thanh nổi). Cao hơn có nghĩa là tốt hơn. Giá trị nằm trong khoảng từ 1 đến 5.
ffmpeg -i input.mp3 -c:a libfdk_aac -vbr 4 output.m4a
Đối với bitrate cố định (CBR), -b:a
ví dụ sử dụng tùy chọn -b:a 128k
. 128 kBit / s nên đủ tốt cho hầu hết các tình huống. Bạn thường có thể chọn một cái gì đó thấp hơn là tốt.
ffmpeg -i input.mp3 -c:a libfdk_aac -b:a 128k output.m4a
Bạn cũng có thể sử dụng HE-AAC (v1 / v2) thay vì cấu hình AAC-LC (độ phức tạp thấp) mặc định, phù hợp nhất cho tốc độ bit thấp:
ffmpeg -i input.mp3 -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k output.m4a
Nếu tôi không có libfdk_aac
thì sao?
Một số phiên bản của FFmpeg không có libfdk_aac
(vì lý do cấp phép). Nếu đó là trường hợp, bạn có thể sử dụng bộ mã hóa AAC tích hợp:
ffmpeg -i input.mp3 -c:a aac -b:a 192k output.m4a
Bộ mã hóa này không hỗ trợ VBR đúng cách, vì vậy nếu bạn cần hoặc HE-AAC, hãy đọc tiếp.
Bạn có thể tự biên dịch ffmpeg và thêm libfdk_aac
hỗ trợ. Có hướng dẫn trên FFmpeg Wiki . Biên dịch dễ dàng trên Linux, dễ dàng vừa phải trên OS X và khá khó trên Windows. Khi bạn làm theo các hướng dẫn biên dịch và cài đặt các thư viện thích hợp trước đó, FFmpeg hiện cung cấp cho bạn tùy chọn để sử dụng libfdk_aac
.
Có một số vấn đề với cách tiếp cận ban đầu của bạn:
alac
không phải là AAC. ALAC là Bộ giải mã âm thanh không mất dữ liệu của Apple , trong khi AAC là Mã hóa âm thanh nâng cao .
Đó là lý do tại sao đầu ra của bạn lớn hơn đầu vào, vì ngược lại với MP3, ALAC vẫn được nén, nhưng nó không bị mất - đó là lý do tại sao nó cần lưu trữ nhiều dữ liệu hơn.
.aac
không phải là thùng chứa đầu ra cho âm thanh ALAC. Nếu bạn sử dụng AAC, điều đó sẽ làm việc. Tôi sẽ sử dụng MP4 hoặc M4A mặc dù.
-c:a
, điều này có bất kỳ từ đồng nghĩa nào không? Tôi đoán nó có thể có nghĩa-acodec:a
nhưng cuối cùng tôi đã bỏ nó đi vàffmpeg
có thể suy ra một codec dựa trên tên tệp đầu ra mong muốn. (Cần-strict experimental
mặc dù; và ném vào-map_metadata 0:0
để có biện pháp tốt, để bảo toàn các thẻ ID3.)