2011-07-12 35 views
14

Tôi đang cố tạo một DVR video trực tuyến như chức năng trong ứng dụng tôi đang phát triển. Tôi có một luồng trực tiếp HTTP mà tôi đã chơi thành công trên iPad. Tôi muốn người dùng có thể nhấn nút "Ghi" và bắt đầu quay video hiện đang phát từ thời điểm đó. Tệp video này sẽ có thể truy cập được từ ứng dụng hoặc từ thư viện ảnh. Hiện tại, tôi đang sử dụng đối tượng MPMoviePlayerController để phát luồng video. Tôi không thấy bất kỳ phương pháp nào truy cập dữ liệu từ đối tượng trong tài liệu của Apple. Dưới đây là một số suy nghĩ tôi đã có về cách đi về điều này.Ghi lại video phát trực tiếp HTTP để gửi trong khi xem?

1) Bằng cách nào đó truy cập dữ liệu video từ MPMoviePlayerController và ghi tệp này vào tệp. Hoặc sử dụng một loại đối tượng trình phát khác cho phép tôi phát video và truy cập dữ liệu đang phát.

2) Triển khai một số loại ghi hình màn hình để quay video màn hình của iPad. Điều này sẽ cho phép tôi ghi lại video theo kiểu "ảnh chụp màn hình".

3) Xác định vị trí các đoạn video HTTP Live Streaming nơi chúng được lưu trữ bởi MPMoviePlayerController. Có lẽ họ cần phải được lưu trữ ở đâu đó trên iPad để phát lại. Có cách nào để truy cập các tệp này không?

4) Tải xuống thủ công các đoạn video luồng trên http khi phát trực tuyến tệp. Điều này có vẻ như nó không lý tưởng vì luồng sẽ phải được tải xuống hai lần.

5) Điều này có thể hiệu quả. Định kỳ tải xuống các phân đoạn video cho iPhone. Thiết lập máy chủ http cục bộ trên iPhone và máy chủ các video vào MPMoviePlayerController. Bằng cách này, các phân đoạn video có thể được đánh dấu để ghi và lắp ráp thành video.

6) Tôi có quyền kiểm soát máy chủ phát trực tuyến. Tôi có thể viết một số mã phía máy chủ để ghi lại video ở cuối máy chủ, sau đó gửi video đến iPad sau khi thực tế. Tôi không muốn làm điều này.

Có ai đã thực hiện bất kỳ điều nào trong số này không? Lý tưởng nhất là iPhone sẽ có thể truy cập dữ liệu video bằng cách nào đó và dễ dàng ghi lại nó. Tôi thà không nhận được vào các tùy chọn 4, 5, hoặc 6 (ở trên) nếu tôi không phải.

Xin cảm ơn trước.

+0

Bạn có gì về điều này không? –

+0

@David Bạn đã hoàn thành chức năng này chưa? Nếu vậy, bạn có thể vui lòng đăng một số mã có liên quan hoặc chỉ cho chúng tôi đúng hướng không? –

Trả lời

2

DVR trên điện thoại được phần nào không khuyến khích, do không gian hạn chế có sẵn và các yếu tố khác như tuổi thọ pin, sức mạnh xử lý, thủ tục dọn dẹp sau khi người dùng ngừng dvr vv

Nếu bạn muốn đạt được DVR phát lại trên thiết bị iOS (hoặc các thiết bị khác sử dụng HLS), tôi khuyên bạn nên giữ nguyên phía máy chủ video. Luồng trực tiếp đã được ghi lại và phân đoạn phía máy chủ, tất cả những gì bạn phải làm là giữ cho các đoạn dài hơn một chút, thay vì xóa chúng. Bằng cách sử dụng các thẻ EXT-X-PLAYLIST-TYPEEXT-X-MEDIA-SEQUENCE, bạn có thể đề xuất với người chơi rằng anh ấy đang phát một luồng trực tiếp có sẵn video DVR (trước đó).

Hoặc, bạn có thể sử dụng máy chủ thực hiện điều đó ngoài hộp, ví dụ: Wowza. Here's an article on how to achieve this with Wowza

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