Sau khi một số tinkering, câu trả lời này đã chia thành hai phần:
Làm thế nào để nắm bắt khung hình ở 60fps
Các AVCaptureSessionPreset1280x720 trên iPhone4s/5.1, với khoảng thời gian khung thiết lập để:
connection.videoMinFrameDuration = CMTimeMake(1, 60);*
connection.videoMaxFrameDuration = CMTimeMake(1, 60);
mang đến cho bạn một, chụp siêu mịn ổn định.
Làm thế nào để nắm bắt khung hình vào một tập tin @ 60fps
Chụp khung hình là tất cả rất tốt, nhưng có lẽ bạn muốn giữ chúng.
Như Brad lưu ý trong các ý kiến, viết những khung hình đó vào một tập tin là một câu chuyện khác. Đáng buồn thay, bất kể cấu hình nào tôi đã thử, mã hóa khung hình qua AVAssetWriter
khiến tốc độ chụp giảm xuống mức quan sát ~ 37fps và không có số lượng không quan trọng với alwaysDiscardsLateVideoFrames
có thể thay đổi. Tuy nhiên, trong cách tiếp cận này, mỗi khung hình duy nhất được sao chép từ AVFoundation vào ứng dụng của bạn, và sau đó lại quay trở lại, điều này khá vô nghĩa và rất phù hợp với xe buýt. May mắn thay, AVFoundation
có một lớp học loại bỏ chuyến đi khứ hồi này: AVCaptureMovieFileOutput
.
Nếu bạn để AVFoundation
thực hiện việc viết cho bạn thì iPhone4S có thể chụp và mã hóa khung + âm thanh thành tệp .mov ở tốc độ 60 khung hình/giây mà không làm đổ mồ hôi (~ 25% CPU).
Trong khi quay video 60fps là tính năng tuyệt vời, tôi không thể không cảm thấy hơi thất vọng khi AVCaptureMovieFileOutput
quy tắc ra rất nhiều điều thú vị (ví dụ: hiệu ứng thời gian thực với bóng đổ GL, ghi bắt đầu/dừng mà không bị mất khung).
bánh/ăn nó
* 59 nếu bạn vẫn đang chạy iOS 5.0.1
Nguồn
2012-04-30 19:03:08
Không biết tại sao câu hỏi này được bình chọn phải đóng cửa? Có vẻ như một câu hỏi tốt, không trùng lặp được hỏi sau khi nghiên cứu tốt. Chắc chắn OP không biết bắt đầu từ đâu, nhưng ít nhất anh ta nói những gì anh ta đang tìm kiếm là có thể và đã được thực hiện bởi các ứng dụng khác trên các điện thoại không jailbroken. – Krishnabhadra
Có, để làm rõ, tôi không muốn Jailbreak. Có một số ứng dụng chuyển động chậm ra khỏi đó cho iPhone (TimeFreeze, slopro). Vì vậy, tôi biết điều đó là có thể. – Michel