Nếu bạn muốn mã hóa video và giải mã video H.264 tăng tốc phần cứng trên iOS, cách duy nhất để thực hiện là AVFoundation. Không sử dụng thư viện của bên thứ ba để mã hóa hoặc giải mã, bởi vì tất cả các thư viện này hiện đang bị ràng buộc CPU và chậm hơn nhiều so với những gì bạn nhận được từ AVFoundation. Một lý do để sử dụng bộ mã hóa hoặc bộ giải mã của bên thứ ba là nếu bạn đang làm việc với một định dạng không được hỗ trợ trong iOS theo mặc định.
Để giải mã được tăng tốc phần cứng, bạn sẽ muốn sử dụng một cá thể AVAssetReader (hoặc một trong các lớp trình phát để phát lại thuần túy). Với một AVAssetReader, tôi thường xuyên nhận được tốc độ phát lại 2X hoặc cao hơn để đọc video mã hóa H.264, do đó thiết bị iOS sử dụng một số tăng tốc phần cứng khá tốt cho điều đó.
Tương tự, đối với mã hóa được tăng tốc, bạn sẽ sử dụng AVAssetWriter. Có một số thủ thuật để nhận được AVAssetWriter để mã hóa ở tốc độ tốt nhất (cho vào khung BGRA, sử dụng vùng đệm pixel, sử dụng bộ đệm kết cấu iOS 5.0 nếu đọc từ OpenGL ES), mà tôi mô tả chi tiết trong phạm vi this answer.
Nếu bạn muốn xem một số mã sử dụng đường dẫn nhanh nhất mà tôi đã tìm thấy để mã hóa và giải mã nhanh hơn, bạn có thể xem khung nguồn mở GPUImage của mình, không giống như mã được liên kết bởi Anastasia. .
Nguồn
2012-04-26 14:57:16
Tiêu đề của câu hỏi là ".. giải mã video", nhưng câu hỏi thực tế là về mã hóa, phải không? Có lẽ, bạn nên chỉnh sửa tiêu đề? – Anastasia
Có một thư viện cho phép mã hóa khung hình thô thành H.264: http://www.foxitsolutions.com/iphone_h264_sdk.html. Thư viện này sử dụng bộ mã hóa phần cứng và cung cấp khung H.264 riêng biệt. Vui lòng xem câu hỏi và câu trả lời này: http://stackoverflow.com/questions/7979842/video-encoding-libraries-for-ios/ – Anastasia
Có thể một bản sao: http://stackoverflow.com/questions/25197169/how-to- giải mã-ah-264-frame-on-ios-by-phần cứng-giải mã –