2010-03-07 32 views
6

làm cách nào tôi có thể tạo tổng kiểm chỉ dữ liệu phương tiện mà không có siêu dữ liệu để nhận được định danh ổn định cho tệp phương tiện. tốt hơn là một phương pháp tiếp cận nền tảng chéo với một thư viện có hỗ trợ cho nhiều định dạng. ví dụ. vlc, ffmpeg hoặc mplayer.Làm cách nào để tạo một tổng kiểm tra ổn định của một tệp phương tiện?

(các tập tin media nên âm thanh và video trong các định dạng phổ biến, hình ảnh sẽ được tốt đẹp để có quá)

+2

Tôi nghĩ rằng bạn đang tìm kiếm một số thuật toán vân tay ... Điều này sẽ rất thú vị vì nó có thể được sử dụng để xác định phương tiện tương tự. Nhìn về phía trước để trả lời, va chạm. +1 – hurikhan77

+0

vân tay cũng thú vị, ví dụ: libofa [1] cho âm thanh (mà tôi không thể biên dịch trên osx mặc dù các bản vá lỗi) nhưng tôi muốn một cái gì đó chung chung hơn để xác định các tập tin trùng lặp và không trùng lặp bài hát/phim. [1] http://code.google.com/p/musicip-libofa/ – yawniek

+0

bởi "không có thẻ", ý của bạn là "không có siêu dữ liệu"? nếu có, nói rằng "dữ liệu truyền thông" có thể gây nhầm lẫn mọi thứ. – cregox

Trả lời

3

tôi không biết về bất kỳ phần mềm độc lập nền tảng nào có thể thực hiện được điều này, nhưng tôi biết cách thức này có thể được thực hiện bằng một ngôn ngữ được giải thích (không có nền tảng) như Java.

Về cơ bản, chúng tôi chỉ cần loại bỏ bất kỳ siêu dữ liệu (thẻ) nào khỏi tệp, phân tách các tệp video trước. Về lý thuyết sau khi demux và loại bỏ siêu dữ liệu, người ta có thể băm các tập tin và so sánh với một tập tin khác đã trải qua quá trình tương tự để phù hợp với các tập tin giống nhau mặc dù có thẻ khác nhau. Không giống như dấu vân tay, điều này sẽ không xác định các bài hát/phim tương tự nhưng các tệp giống nhau (hãy tưởng tượng bạn có thể muốn 10 phiên bản hoặc bitrate khác nhau của một bài hát cụ thể mà bạn đã lưu trữ, nhưng không muốn 2 bản sao giống nhau của bất kỳ bản nhạc nào trôi nổi xung quanh) .

Phần khó khăn nhất trong số này là xóa thẻ vì có nhiều đặc điểm khác nhau cho định dạng thẻ không nhất thiết được triển khai giống nhau trên các ứng dụng khác nhau, tức là cùng một tệp âm thanh chính xác cho các thẻ giống hệt nhau thông qua hai ứng dụng khác nhau trong các tệp đầu ra giống hệt nhau. Cách duy nhất điều này có thể gây ra vấn đề nghiêm trọng đối với khái niệm kiểm tra chỉ âm thanh là nếu phần mềm gắn thẻ phổ biến thực hiện bất kỳ thay đổi nào đối với phần âm thanh nhị phân của tệp hoặc đệm âm thanh theo cách không chuẩn.

Thực hiện kiểm tra là tầm thường, nhưng tôi không nhận thức được phần trên đầu của bất kỳ thư viện độc lập nền tảng nào để loại bỏ và loại bỏ tệp mpeg. Tôi biết rằng trong môi trường 'nix', mpgtx là một công cụ dòng lệnh tuyệt vời có thể thực hiện demux và detag, nhưng rõ ràng đó không phải là một giải pháp nền tảng độc lập.

Có thể ai đó ngoài kia cảm thấy tham vọng?

+0

đây là con đường để đi. trong khi chờ đợi tôi đã viết ha vá cho ffmpeg để tính toán băm sha1 thay vì adler32 tổng kiểm tra. điều này về cơ bản thực hiện các trick. nếu có ai muốn giúp tôi mang cái này đến ffmpeg thì sẽ rất tuyệt. – yawniek

0

một giải pháp khả thi tôi thấy có vẻ là với vlc:

./VLC -I rc snd.mp3 :sout='#std{mux=raw,access=file,dst=-}' vlc://quit | sha1sum 
+0

dường như không hoạt động cho phim ảnh, dường như không phải là nền tảng độc lập – yawniek

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