Tôi đang tạo tính năng xuất video cho một trong các ứng dụng của mình. Về bản chất, video là một trong sáu hình ảnh khác nhau kéo dài trong các khoảng thời gian khác nhau (ngắn).Lỗi OSStatus không xác định -16364 khi sử dụng AVAssetWriter
Xuất hoạt động tốt khi tôi xuất nội dung có chứa 283 hình ảnh có thời lượng khác nhau, nhưng khi tôi cố gắng xuất một trong 803, tôi gặp phải lỗi "Không thể hoàn tất thao tác" (AKA) chỉ cần thổi lên vì báo cáo lỗi AVFoundation là khủng khiếp ").
Khi tôi cố gắng thêm khung 754 (luôn khung 754) sử dụng tôi AVAssetWriterInputPixelBufferAdaptor
, appendPixelBuffer:withPresentationTime:
lợi nhuận NO
, trạng thái 's AVAssetWriter
được thất bại và lỗi của nó là thế này:
Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x17ab2050 {Error Domain=NSOSStatusErrorDomain Code=-16364 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-16364)}
tôi không thể cho cuộc sống của tôi tìm ra lỗi cơ bản (OSStatus
-16364) là gì. www.osstatus.com không có ý tưởng, macerror
nói không có điều như vậy tồn tại, và this Kịch bản lệnh Python để tìm kiếm tiêu đề SDK không tìm thấy gì. Nó cũng không phải là một mã bốn ký tự giống như một số lỗi OSStatus (trừ khi tôi sai lầm khi kiểm tra điều này).
Tôi đã loại trừ mọi nguyên nhân phổ biến của lỗi "Không thể hoàn tất thao tác" mà tôi đã tìm thấy. Nó không liên quan đến quyền hoặc ghi đè hệ thống tập tin, không có hai cuộc gọi nào là appendPixelBuffer
có cùng thời gian trình bày.
Nó không phải là một điều bộ nhớ (sử dụng bộ nhớ vẫn bằng phẳng ở 165MB trong khi xuất video), và CPU vẫn gần 3%.
Nếu nó quan trọng, tôi sử dụng lại 6 CVPixelBuffer
s cùng một lần cho 6 hình ảnh thay vì tạo hình ảnh mới từ UIImage
mỗi lần. Điều này dường như để giúp thực hiện, và thay đổi nó để những cái mới mỗi lần dường như không thay đổi bất cứ điều gì (ngoại trừ làm cho nó thất bại trên khung 753 thay vào đó), nhưng ai biết được.
Có ai có ý tưởng gì về điều này không?
có thể điều này sẽ giúp bạn https://github.com/BradLarson/GPUImage/issues/2135 – azimov
@azimov: Tôi không sử dụng GPUImage, nhưng có thể việc sửa lỗi liên quan đến công cụ phân luồng sẽ đưa tôi đến một nơi nào đó. Cảm ơn. – Linuxios
Có, tôi thấy nó không giống nhau, nhưng tác giả đang chỉ AVAssetWriter trong bình luận của mình, và anh ta nhận được mã lỗi giống như bạn. – azimov