Điểm thăm dò cho biết FFmpeg tự tin như thế nào về định dạng container của một tệp. FFmpeg là một framework đa phương tiện dùng để đọc và chuyển đổi tệp âm thanh và video, và chương trình ffprobe của nó sẽ báo điểm này.
Điểm là một số nguyên từ 0 đến 100, và số cao hơn nghĩa là mức khớp mạnh hơn. Điểm chỉ mô tả định dạng container, ví dụ như MKV hoặc MP4. Điểm này không đo chất lượng âm thanh hoặc hình ảnh.
Giá trị đến từ đâu
Điểm thăm dò không được lưu trong tệp của bạn. FFmpeg sẽ tính ra con số này mỗi lần mở tệp.
FFmpeg có một bộ dò nhỏ cho nhiều định dạng. Mỗi bộ dò đọc phần đầu tệp, tìm dấu hiệu của định dạng riêng của nó và trả về một điểm. Định dạng có điểm cao nhất sẽ được chọn.
FFmpeg bắt đầu với 2048 byte dữ liệu. Nếu không có định dạng nào đạt trên 25 điểm, FFmpeg sẽ nhân đôi lượng dữ liệu và thử lại.
Giới hạn mặc định là 1.048.576 byte, khoảng 1 MB. Ở lần thử cuối, chỉ cần điểm lớn hơn 0 là đủ.
Nếu đầu vào báo một MIME type khớp với một định dạng, định dạng đó sẽ được cộng thêm 30 điểm, tối đa 100. Nếu có 2 định dạng hòa điểm cao nhất, FFmpeg sẽ loại cả hai. Nếu sau lần thử cuối mà không còn định dạng nào, FFmpeg sẽ dừng lại với lỗi Invalid data found when processing input.
Phần mở rộng tệp ảnh hưởng đến điểm số như thế nào
Điểm thăm dò cao không chứng minh rằng phần mở rộng tệp là đúng. Ví dụ, bộ dò Matroska trả về 100 điểm cho một kiểu tài liệu đã biết trong header tệp, bất kể tên tệp là gì.
Khi một định dạng có bộ dò, phần mở rộng khớp thường chỉ nâng điểm từ 0 lên 1. Một định dạng không có bộ dò thì phụ thuộc vào phần mở rộng, và một phần mở rộng khớp sẽ cho định dạng đó 50 điểm. Để kiểm tra một phần mở rộng đáng ngờ, hãy so sánh phần mở rộng với tên định dạng mà ffprobe báo cạnh điểm.
Giá trị trông như thế nào
Với tùy chọn -show_format, ffprobe in điểm thành một dòng trong phần format: probe_score=100. Báo cáo XML của ffprobe mang cùng con số đó trong thuộc tính tên là probe_score.
Các giá trị điển hình
Các ví dụ này lấy từ mã nguồn FFmpeg 9.0. Các phiên bản khác có thể cho ra con số khác, ví dụ 51 cho tệp MP3 trong FFmpeg 8.1.
100: tệp MP4 hoặc MOV có một phần tên làftyphoặcmoov100: tệp Matroska hoặc WebM với kiểu tài liệu đã biết100: tệp FLAC với thông tin luồng hợp lệ99: tệp WAV với header RIFF chuẩn52: tệp MP3 với ít nhất 7 khung âm thanh ở đầu51: tệp AAC dạng ADTS với ít nhất 3 khung âm thanh ở đầu50: tệp ở định dạng không có bộ dò, chỉ khớp nhờ phần mở rộng0: tệp có định dạng bị ép bằng tùy chọn-f, nên FFmpeg bỏ qua bước dò
Tại sao điều này quan trọng đối với tệp của bạn
Điểm phát hiện là 25 hoặc thấp hơn là một dấu hiệu cảnh báo, không phải bằng chứng chắc chắn có lỗi. Khi đó FFmpeg sẽ in một thông báo có từ misdetection possible, nghĩa là FFmpeg có thể đã chọn sai định dạng.
Điểm gần 50 là bình thường đối với tệp MP3 và AAC, vì bộ dò của chúng không trả về quá 52. Vì vậy điểm 51 hoặc 52 không có nghĩa là tệp MP3 của bạn có vấn đề.
Với điểm phát hiện là 25 hoặc thấp hơn, tài liệu dành cho lập trình viên của FFmpeg khuyên bạn thử lại với nhiều dữ liệu hơn. Tùy chọn -formatprobesize đặt giới hạn kích thước dữ liệu (tính bằng byte) để dò định dạng. Các tùy chọn -probesize và -analyzeduration có nhiệm vụ khác: chúng giới hạn lượng dữ liệu FFmpeg đọc để tìm chi tiết về luồng.