Tôi đang tìm cách nhanh nhất để giải mã khung hình của video mpeg-4 cục bộ trên iPhone. Tôi chỉ đơn giản quan tâm đến các giá trị độ sáng của các pixel trong mỗi khung thứ 10. Tôi không cần phải hiển thị video ở bất cứ đâu.Giải mã khung hình video trên iPhone GPU
Tôi đã thử ffmpeg, AVAssetReader, ImageAssetGenerator, OpenCV và MPMoviePlayer nhưng tất cả đều quá chậm. Tốc độ nhanh nhất tôi có thể nhận được là ~ 2x (2 phút video được quét trong một phút). Tôi muốn một cái gì đó gần hơn đến 10x.
Giả sử những nỗ lực của tôi ở trên không sử dụng GPU, có cách nào để hoàn thành mục tiêu của tôi với một thứ gì đó chạy trên GPU không? OpenGL có vẻ như nó chủ yếu là để render đầu ra nhưng tôi đã thấy nó được sử dụng như các bộ lọc cho video đến. Có lẽ đó là một lựa chọn?
Cảm ơn trước!
bummer có vẻ như tôi cần trở thành người tham dự WWDC 2011 để nhận mẫu đó. Tôi vẫn lo rằng hiệu quả là chuyển mã theo thời gian thực. Tôi muốn có tốc độ 15x (15 phút quét video trong 1 phút). Tôi nghĩ rằng cổ chai là trong giải mã khung. –
@simon.d - Tôi mô tả kỹ thuật được sử dụng trong ví dụ ChromaKey trong câu trả lời của tôi ở đây: http://stackoverflow.com/a/9704392/19679 và bạn có thể lấy mã GPUImage của tôi để xem điều này hoạt động để mã hóa phim. Tuy nhiên, tôi chưa cập nhật mã đọc phim của mình để sử dụng tải lên kết cấu nhanh. Do thực tế là các thiết bị iOS có phần cứng chuyên dụng để giải mã H.264, tôi cảm thấy một cách hợp lý nhất định rằng bạn sẽ không nhận được bất kỳ phân tích cú pháp nhanh hơn cho phim nào bằng cách sử dụng AVFoundation với tải lên kết cấu nhanh iOS 5.0. –
Mã ví dụ RosyWriter của Apple cũng thể hiện liên kết AVCaptureSession -> OpenGL này. Xem [tại đây] (https://developer.apple.com/library/ios/samplecode/RosyWriter/Introduction/Intro.html). – bcattle