Tôi đã thực hiện một vài thử nghiệm với GStreamer bằng cách sử dụng tiện ích khởi chạy gst. Tuy nhiên, cuối cùng, mục tiêu là triển khai chức năng tương tự này trên ứng dụng của riêng tôi bằng cách sử dụng thư viện GStreamer.Gstreamer - Chuyển đổi dòng lệnh gst-launch thành mã C
Vấn đề là cuối cùng khó khăn (ít nhất là đối với người không quen với API GStreamer) để "chuyển" những gì tôi kiểm tra trên dòng lệnh tới mã C/C++.
Một ví dụ về một lệnh mà tôi có thể cần đến cảng là:
gst-launch filesrc location="CLIP8.mp4" ! decodebin2 ! jpegenc ! multifilesink location="test%d.jpg"
các "thẳng về phía trước" chiều/cách tiếp cận nhất để chỉ huy như vậy và viết nó trong C trên ứng dụng riêng của tôi là gì.
Ngoài ra, như một câu hỏi phụ, làm thế nào tôi có thể thay thế multifilesink với khả năng làm công việc này trên bộ nhớ (tôi đang sử dụng OpenCV để thực hiện một vài tính toán trên một hình ảnh nhất định sẽ được trích xuất từ video). Có thể giải mã trực tiếp vào bộ nhớ và sử dụng nó ngay lập tức mà không cần lưu trước vào hệ thống tập tin không? Nó có thể (và nên) được tuần tự, tôi có nghĩa là sẽ chỉ chuyển sang khung tiếp theo sau khi tôi hoàn thành việc xử lý khung hiện tại để tôi không phải giữ hàng nghìn khung trong bộ nhớ.
Bạn nói gì?
Một khả năng thú vị. Mặc dù tôi muốn thực hiện một số bước đơn giản sau khi đọc một dòng lệnh để mã hóa đường ống tương đương trong C. Tôi chỉ hỏi điều này vì tài liệu GStreamer không phải là "nhà phát triển thân thiện nhất" xung quanh;) – petersaints