2012-06-20 24 views
8

Tôi muốn màn hình ghi (bằng cách chụp 15 ảnh chụp màn hình mỗi giây). Phần này tôi biết cách làm. Nhưng tôi không biết cách viết cái này cho một số định dạng video phổ biến. Tùy chọn tốt nhất mà tôi tìm thấy là viết khung để phân tách các tệp PNG và sử dụng lệnh Mencoder có thể chuyển đổi chúng sang nhiều định dạng đầu ra. Nhưng có lẽ ai đó có ý tưởng khác?Trình ghi màn hình lập trình - các vấn đề đầu ra

Yêu cầu:

  • Phải là giải pháp đa nền tảng (Tôi đang sử dụng Free Pascal/Lazarus). Windows, Linux, MacOS
  • Tồn tại một số thư viện cho điều đó?
  • Có thể là ứng dụng dòng lệnh phức tạp ghi lại màn hình cho tôi, nhưng tôi phải có khả năng chỉnh sửa khung trước khi chuyển đổi toàn bộ dữ liệu thô thành định dạng video phổ biến
  • Tất cả các tài liệu có thể cho tôi một số ý tưởng được đánh giá cao. API, thư viện, bất kỳ ngôn ngữ nào khác ngoài FPC (tôi sẽ thử viết lại hoặc tìm một số tương đương)
  • Tôi cũng xem xét các khung hình cho định dạng video RAW và sau đó sử dụng Mencoder (ông có thể xử lý) hoặc giải pháp khác, nhưng có thể 't tìm thấy bất kỳ API/doc cho video dữ liệu RAW

Trân

+0

[ffmpeg] (http://ffmpeg.org/) là đa nền tảng, được cấp phép theo LGPL hoặc GPL, được cập nhật gần đây. – Argalatyr

+0

Dường như dự án Mencoder. Vì vậy, tôi có giải pháp cho mã hóa đầu ra. Nhưng làm cách nào để chuẩn bị đầu vào cho các bộ mã hóa đó? Tôi đang tìm một thứ gì đó khác với chuỗi tệp PNG – Dibo

+0

[docs] (http://ffmpeg.org/faq.html#How-do-I-encode-single-pictures-into-movies_003f) mô tả mã hóa từ hình ảnh khung để mpeg. Sẽ không làm những gì bạn muốn? – Argalatyr

Trả lời

4

Argalatyr nêu ffmpeg rồi.

Có hai cách mà bạn có thể nhận được rằng để làm việc:

  1. Bằng việc lai tạo một quá trình mới. Tất cả những gì bạn phải làm là chuẩn bị đầu vào đúng (có thể là một loạt các hình ảnh jpeg chẳng hạn) và các tham số dòng lệnh phù hợp. Sau đó bạn chỉ cần gọi ffmpeg.exe và đợi nó kết thúc.

  2. ffmpeg sử dụng một số dll làm công việc thực tế. Bạn có thể sử dụng những dll trực tiếp từ bên trong ứng dụng Delphi của bạn. Đó là một công việc nhiều hơn một chút, bởi vì nó là cấp độ thấp hơn, nhưng cuối cùng nó sẽ cung cấp cho bạn một kiểm soát tốt hơn về những gì sẽ xảy ra, và những gì bạn hiển thị cho người dùng trong khi bạn đang xử lý.

Dưới đây là một số giải pháp để kiểm tra:

+1

+1 đề xuất tuyệt vời. – Argalatyr

+0

Cảm ơn tất cả! DLL giải pháp trông đầy hứa hẹn. Tôi kiểm tra nó ra – Dibo

+0

@Wouter: bạn có thể muốn chỉnh sửa câu trả lời của bạn ngay bây giờ mà ai đó đã xóa câu trả lời (trước đó) của tôi như không có gì nhiều hơn một bình luận. Có vẻ không công bằng với tôi, nhưng họ là những giờ nghỉ. – Argalatyr

-1

Có một số cuộc thảo luận trước đó với một thành phần Delphi here. Đó là một thành phần rất đơn giản mà đôi khi tạo ra một số bộ phim kỳ lạ. Có thể là một sự khởi đầu.

+0

bạn có thấy yêu cầu đầu tiên của OP không? "đa nền tảng" – Argalatyr

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