Chương trình kết xuất cấu trúc thẻ ID3


11

Có chương trình nào kết xuất cấu trúc hoàn chỉnh của thẻ ID3v2 không?

Không chỉ tên và giá trị khung, mà thông tin đầy đủ như thứ tự khung, mã hóa văn bản, mã hóa mô tả (đối với khung TXXX), sự hiện diện của không đồng bộ hóa, sự hiện diện của nhiều thẻ ...

Bối cảnh: Tôi khá tò mò tại sao một số tệp không tương thích với một số chương trình. Ví dụ: một số thẻ ID3v2.4 được viết bởi foobar2000 không được Winamp đọc; chỉnh sửa với Mutagen sửa chúng nhưng chỉnh sửa với foobar2000 lại bị hỏng. Đây không phải là phiên bản hoặc mã hóa dữ liệu - hầu hết các thẻ v2.4 UTF-16 khác đều hoạt động tốt ... Tuy nhiên, nếu tôi sử dụng foobar2000 để chuyển đổi các thẻ thành v2.3, thì quay lại v2.4, chúng bắt đầu hoạt động tốt trong Winamp - bit cuối cùng này không nghĩa gì cả.

Chỉnh sửa: Linux hoặc / và Windows.

Câu trả lời:


4

mp3diags trên windows nên kiểm tra các lỗi đã biết và cho phép bạn xem các thẻ thô - nó liệt kê các lỗi đã biết nhưng bạn cũng có thể xem các thẻ thô. Tôi dường như không thể tìm ra cách để đưa nó ra một tệp văn bản. Với số lượng thẻ hạn chế, việc kiểm tra và sửa chữa hàng loạt thẻ rất tốt.

nhập mô tả hình ảnh ở đây


Điều này có vẻ rất thú vị. Cảm ơn. (Nó vẫn không hiển thị mã hóa nào được sử dụng bởi các khung thẻ, nhưng nó cung cấp quá nhiều chi tiết khác.)
grawity

Có vẻ như MP3Diag cũng có nhược điểm riêng (chẳng hạn mọi chỉnh sửa đối với thẻ ID3 hạ cấp xuống 2.3.0 chẳng hạn), mặc dù nó hoạt động tốt để sửa các loại luồng khác.
grawity

9

exiftool có thể cung cấp rất nhiều thông tin:

exiftool -v3 -l FILENAME.mp3


exiftool thực sự có thể kết xuất thông tin thô, bao gồm ID3v4! Thực sự tuyệt vời!
haimg

2

Các thư viện MP3 beaglebuddy làm những gì bạn đang yêu cầu. Nó hỗ trợ các thẻ ID3v2.3 và hỗ trợ cho các thẻ ID3v2.4 sẽ được hoàn thành vào tháng 5 năm 2014. Nó hiển thị các byte thô cũng như các giá trị được phân tích cú pháp. Tôi đã bao gồm một số đầu ra mẫu.

ID3v2.4 frame: SONG_TITLE
frame header
   bytes..................: 0x54 0x49 0x54 0x32 0x00 0x00 0x00 0x0A 0x00 0x00 
   frame type.............: TIT2: SONG_TITLE - title/songname/content description
   frame header size......: 10
   frame body size........: 10
   tag  alter preservation: false
   file alter preservation: false
   read only..............: false
   compression............: false
   encryption.............: false
   grouping identity......: false
   uncompressed size......: 0
   encryption method......: 0
   unsynchronized.........: false
   data length indicator..: 0
   group Id...............: 0
frame body: text information
   bytes...: 10 bytes
             0x03 0x54 0x65 0x73 0x74 0x20 0x4E 0x61 0x6D 0x65 
   encoding: 3 - UTF-8
   text....: Test Name

1

Bạn có thể cần phải viết công cụ của riêng bạn. TagLibid3lib có thể hữu ích trong trường hợp này.

Đáng chú ý là danh sách Dự án trên trang chủ của id3lib, có chứa một số công cụ có thể giải quyết vấn đề của bạn mà không cần lập trình.


Trước đây tôi đã dùng thử công cụ id3info , một phần của id3lib và thậm chí nó không nhận ra các tệp có thẻ ID3v2.4, chỉ v2.3. Tuy nhiên, không chắc chắn điều này là do công cụ hoặc thư viện gây ra. Tôi sẽ xem xét cả hai, nhưng các thư viện như vậy thường có xu hướng ẩn cấu trúc thẻ (mã hóa, thứ tự, v.v.) khỏi nhà phát triển, chỉ hiển thị các cặp giá trị thẻ.
grawity

1

Thư viện python Mutagen bao gồm một tiện ích có tên mid3v2 cung cấp kết xuất / xuất rất sạch và triệt để các giá trị phù hợp để thực hiện trước / sau khi so sánh khác nhau.

Nếu bạn chưa bao giờ thiết lập một kịch bản python thì có lẽ exiftools sẽ đáng để tìm ra, nhưng tôi thấy mid3v2 dễ dàng hơn nhiều.

metamp3 được thiết kế cho việc này nhưng IMO hơi lỗi thời, hiển thị một số trường tiêu chuẩn thực tế khá phổ biến (đọc: iTunes) là "không xác định".

ID3RawTagViewer và ID3TagBackup cũng là những công cụ khá cũ nhưng bạn cũng có thể thấy chúng hữu ích.

MP3Tags có plugin "xuất toàn cầu", nhưng trong một số trường hợp, nó "ẩn" tên khung thực sự bằng cách sử dụng tên trường "ánh xạ" bên trong để chúng giống nhau trên các định dạng khác nhau (ví dụ FLAC và MP3).

Không có chủ đề nhưng Ex Falso là một thành viên khác của gia đình Mutagen / Quod Libet thực hiện điều này rất độc đáo cho FLAC, nhưng vì một số lý do "che giấu" tất cả các thẻ TXXX tùy chỉnh không phải QL cho ID3.

BTW nhiều người chỉ sử dụng trình soạn thảo HEX yêu thích của họ. . .


Tôi đã sử dụng Mutagen trước đó, sẽ kiểm tra metamp3 và ID3RawTagViewer. Các công cụ khác chỉ hiển thị các thẻ "name = value" trừu tượng, vì vậy chúng không phù hợp cho mục đích này.
grawity

0

Tôi không có nghĩa là một chuyên gia về id3, tuy nhiên, gần đây tôi đã làm việc trên thư viện của mình. Bạn đã không chỉ định một hệ điều hành. Tôi hầu như chỉ sử dụng Linux. Một số công cụ tôi đang sử dụng, có thể được sử dụng cho bạn là id3info (CLI) và kid3-qt (qt KDE id3). Điều thứ hai là thú vị. Tôi không chắc liệu nó có cung cấp cho bạn mọi thứ bạn cần hay không nhưng nó sẽ hiển thị rất nhiều thông tin, ít nhất, có thể giúp bạn có được một số thứ mà bạn dường như đang tìm kiếm. Nếu bạn đang tìm kiếm một công cụ di động hơn, dường như có thể mang lại cho bạn tất cả những gì bạn đang tìm kiếm là một công cụ python có tên mid3v2. Tôi vừa kiểm tra nó và nó có một đối số - list-raw, có vẻ như khá hữu ích!


Cảm ơn, nhưng cả id3info và kid3-qt đều không làm những gì tôi muốn, chúng chỉ hiển thị các giá trị được định dạng. Trên thực tế, id3info hoàn toàn không nhận ra thẻ ID3v2.4. mid3v2 chỉ là một giao diện cho Mutagen, một trong những giao diện tốt nhất khi hỗ trợ thẻ nhưng vẫn không phải là công cụ cũng như thư viện Mutagen sẽ cung cấp cho tôi đủ thông tin về cấu trúc thô - mặc dù cho đến nay nó trông khá tốt.
grawity
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.