2009-08-13 36 views
5

Tôi có máy khách C# .net trên windows và cần trích xuất mã thời gian bắt đầu và siêu dữ liệu thời lượng/độ dài từ tệp .mov. Có ai ngoài kia biết cách làm không? Tôi nhìn xung quanh trên mạng nhưng không tìm thấy bất cứ điều gì được nêu ra. Cảm ơn trước cho thời gian của bạn.Cách trích xuất mã thời gian bắt đầu và siêu dữ liệu thời lượng/độ dài từ tệp .mov?

Trả lời

0

Tôi không biết thư viện C# nào có thể phân tích cú pháp tệp .mov. Bạn có thể gọi mã không được quản lý trong môi trường của mình không? (yêu cầu quyền FullTrust)

Thật khó để phân tích cú pháp các tệp (chúng tôi đã làm điều đó một lần trong bộ lọc DirectShow), vì vậy tôi khuyên bạn nên sử dụng thư viện để thực hiện công việc cho bạn. Nhìn ví dụ ở MediaInfo hoặc ffmpeg

container MP4 rất giống .mov file, vì vậy bạn cũng có thể sử dụng công cụ MP4 như mp4box để trích xuất thông tin rất chi tiết (ví dụ đối với timecode bắt đầu)

+0

Có, tôi có thể gọi mã không được quản lý trong môi trường của mình. Tôi đã xem MediaInfo và ffmpeg và không thấy mã thời gian và mã thời gian. Tôi mới đến điều này bạn có thể cho tôi biết nếu tôi đang thiếu một cái gì đó? Cảm ơn! –

+0

Trong phiên bản GUI của MediaInfo, bạn có thể thay đổi dạng xem để hiển thị thêm chi tiết. Tôi thường sử dụng chế độ xem 'Cây'. – chris166

+0

Tôi cần phải có hai thuộc tính (bắt đầu mã hóa thời gian và chiều dài) theo lập trình, bạn nghĩ rằng tôi có thể làm điều đó bằng cách sử dụng MediaInfo? TIA –

0

Nếu bạn có thể gọi mã không được quản lý, bạn có thể chỉ cần sử dụng QuickTime cho Windows để nhận thông tin này.

Nếu không, tất cả thông tin bạn muốn có trong nguyên tử đầu trang phim. Tất cả các phim QuickTime bắt đầu tại thời điểm 0 (do đó, có một nửa vấn đề được giải quyết) và kết thúc ở thời lượng được chỉ định của chúng, tương đương với thời lượng của bản nhạc dài nhất. Thời gian được xác định theo thang thời gian phim, xác định số đơn vị thời gian trên giây; mặc định là 600 đơn vị mỗi giây.

Bạn tìm quy mô thời gian phim và thời lượng bằng cách quét tệp cho nguyên tử tiêu đề phim, loại có số là 'mvhd' và sau đó bỏ qua các khoảng thời gian và thời lượng của nguyên tử, là 16 byte trong quá trình bắt đầu trường loại nguyên tử ('mvhd' mà bạn đã tìm thấy). Mỗi là một số nguyên không dấu 4 byte lớn.

QuickTime là định dạng vùng chứa, tuy nhiên, không phải tất cả các tệp phim đều chứa tiêu đề phim. Một số chỉ đơn giản là tham chiếu hoặc phát trực tuyến phim trỏ đến một số vị trí khác nơi dữ liệu phim thực tế cư trú. Ngay cả khi tiêu đề phim là hiện tại, không có yêu cầu rằng nó thực sự đứng đầu dữ liệu của tập tin.

Bạn có thể đọc quá nhiều về định dạng tệp QuickTime trong QuickTime File Format Specification. (Định dạng tệp MPEG-4 thực sự dựa trên định dạng tệp QuickTime, vì vậy nếu bạn biết bất cứ điều gì về điều đó, kiến ​​thức sẽ chuyển.)

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