2008-10-13 15 views
5

Tôi biết nhiều tiện ích có thể cho tôi biết tốc độ bit của tệp MP3, nhưng tôi chưa bao giờ thấy một tiện ích có thể cho tôi biết tệp MP3 có phải là VBR hay không. dao động trong tệp) hoặc CBR (tốc độ bit không đổi - tốc độ bit vẫn giữ nguyên trong tệp). Tôi đoán là hầu hết các chương trình không quan tâm đến việc tìm kiếm điều này vì nó liên quan đến việc phân tích tệp để xem liệu tốc độ bit có thay đổi hay không.Làm thế nào tôi có thể lập trình xác định xem tệp MP3 là CBR hay VBR? (tốt nhất là sử dụng C#)

Vì vậy, thay vì tìm một tiện ích, tôi muốn viết một - vì vậy làm thế nào tôi có thể lập trình xác định có hay không một tập tin MP3 là VBR hoặc CBR? Tôi có khoảng 15.000 tệp để trải qua để tìm ra điều này, vì vậy tôi cần phải tự động hóa quy trình.

Trả lời

7

file MP3 được về cơ bản xây dựng của cái gọi là khung. Mỗi khung có một tiêu đề nhỏ lưu trữ thông tin về khung. Tiêu đề cũng lưu trữ bitrate nào được sử dụng cho khung. Trong tệp CBR, tất cả các khung sử dụng cùng tốc độ bit và do đó mọi tiêu đề đều có cùng thông tin bitrate.

Để phát hiện xem tệp có sử dụng VBR hay không, bạn phải xem qua từng khung của tệp, xem tiêu đề và kiểm tra xem trường bitrate có thay đổi không. Nếu có, đó là một VBR MP3.

Một mô tả đầy đủ các định dạng MP3 là ở đây: http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

2

Kiểm tra MP3Header Class này, nó có một phương pháp mà cho bạn biết nếu các tập tin mp3 là VBR, và tất cả các thông tin mp3 tiêu đề ...

... 
boolVBitRate = LoadVBRHeader(bytVBitRate); 
... 
+4

Phương thức lớp này sử dụng để xác định xem nó một file VBR là khá hạn chế. Nó chỉ kiểm tra nếu nó tìm thấy chuỗi "Xing" sau tiêu đề ID3v2 (tùy chọn) của tệp, nhưng điều này không được mô tả bằng bất kỳ tiêu chuẩn nào và có bộ mã hóa không đặt "Xing" ngay cả khi đó là tệp VBR . –

Các vấn đề liên quan