2012-11-27 20 views
7

Tôi muốn viết một ứng dụng iPhone liên tục quay video, h.264 mã hóa chúng trong khoảng thời gian 10 giây và tải lên một máy chủ lưu trữ. Điều này có thể được thực hiện với avassetwriter, và tôi có thể tiếp tục xóa các tập tin cũ như tôi tạo ra những cái mới. Tuy nhiên, do bộ nhớ flash có chu kỳ ghi giới hạn, lược đồ này sẽ hủy flash sau vài nghìn lần ghi qua flash. Có cách nào để chuyển hướng avassetwriter vào bộ nhớ, hoặc tạo ra một ổ đĩa ram trên iphone?là có thể cho avassetwriter để đầu ra vào bộ nhớ

Cảm ơn!

+1

"Tuy nhiên, do bộ nhớ flash có chu kỳ ghi giới hạn, lược đồ này sẽ hủy flash sau một vài nghìn lần ghi qua flash." Tôi khá chắc rằng quản lý bộ nhớ không hoạt động theo cách này vì có rất nhiều các quy trình tạo và ghi đè các tệp tạm thời. những gì bạn nói sẽ là đúng nếu bạn liên tục viết cho cùng một khu vực, nhưng nó hiếm khi được thực hiện theo cách đó trong một hệ điều hành. –

+0

bạn đã tìm được cách để làm điều đó chưa? – user1244109

+0

Tôi đang cố gắng thực hiện điều tương tự. Tôi có một giải pháp gần như làm việc, nơi tôi chuyển đổi giữa hai AVAssetWriters.I chạy vào các vấn đề kể từ khi tôi cần phải đệm mẫu âm thanh khi chuyển đổi giữa các nhà văn. Tôi tạo một bản sao của sampleBuffer bằng CMSampleBufferCreateCopy. user1244109 - mọi tiến trình? – user331244

Trả lời

-1

Tại sao ghi dữ liệu vào tệp? Bạn không thể sao chép dữ liệu chụp trong bộ nhớ và sau đó đẩy nó vào máy chủ từ bộ nhớ?

+0

Tôi ước tôi có thể làm điều đó, nhưng api avassetwriter được cung cấp bởi Apple chỉ có thể ghi vào URL tập tin. –

+0

Thay vào đó, tôi có nghĩa là tại sao sử dụng avassetwriter ở tất cả? Vì bạn chắc chắn nhận được dữ liệu từ đâu đó và cho nó để avassetwriter, tại sao không bỏ qua các trung gian và tải lên các dữ liệu từ đó một nơi nào đó trực tiếp? – bloopletech

+8

Vì AVAssetWriter không chỉ ghi dữ liệu mà còn nén dữ liệu theo cách hiệu quả bằng cách sử dụng mã hóa video phần cứng. – kolyuchiy

1

Có avassetwriter là cách duy nhất để đến bộ giải mã phần cứng. và chỉ cần đọc lại tệp trong khi tệp được viết không cung cấp cho bạn các nguyên tử moov để những người chơi dựa trên trình phát hoặc người chơi dựa trên mpmediaplayer sẽ không thể đọc lại được. bạn chỉ có một vài lựa chọn, định kỳ dừng asassetwriter và ghi vào tệp trên một chuỗi nền, phân đoạn hiệu quả phim của bạn thành các tệp hoàn chỉnh nhỏ hơn. hoặc bạn có thể đối phó với mp4 không hoàn chỉnh ở phía máy chủ, bạn sẽ phải giải mã nguyên tử của Nalu và tái tạo các nguyên tử moov còn thiếu. Nếu bạn sử dụng ffmpeg mov.c là nguồn để xem xét. Đây cũng là một tệp mp4 không hoàn chỉnh sẽ không thành công.

+0

Vui lòng xem câu trả lời của tôi cho câu hỏi này http://stackoverflow.com/questions/13851481/http-live-streaming-server-on-iphone/13889048#13889048 –

Các vấn đề liên quan