2011-07-21 14 views
7

Tôi biết cách lấy khung từ sdk iOS. . [Làm thế nào để nắm bắt khung hình video từ camera như hình ảnh sử dụng AV Foundation (http://developer.apple.com/library/ios/#qa/qa1702/_index.html)] Đó là pixel, và tôi có thể chuyển nó vào JPEGCách chuyển video có hiệu quả giữa hai thiết bị iOS (Giống như FaceTime, skype, fring, tango)

Còn cách nào tôi muốn chuyển video là như thế này:

một thiết bị iOS A:

  1. Lấy pixel hoặc JPEG từ chức năng gọi

-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection

  1. Sử dụng tồn tại mã hóa công nghệ để h.264 - ffmpeg

  2. Encapsulate video với TS dòng

  3. Run http server, và chờ đợi cho yêu cầu

Thiết bị iOS khác B:

  1. http yêu cầu A (sử dụng http chỉ thay vì rtp/rtsp)

Vì vậy, câu hỏi của tôi là, tôi có cần sử dụng ffmpeg để nhận luồng h.264 hoặc tôi có thể lấy từ iOS API không? Nếu tôi sử dụng ffmpeg để mã hóa thành h.264 (libx264), làm thế nào để làm điều đó, có bất kỳ mã mẫu hoặc hướng dẫn nào không?

Tôi đã đọc bài đăng What's the best way of live streaming iphone camera to a media server? Đó là một cuộc thảo luận khá hay, nhưng tôi muốn biết chi tiết.

Trả lời

0

Giấy phép cho ffmpeg không tương thích với các ứng dụng iOS được phân phối qua App Store.

Nếu bạn muốn chuyển video thời gian thực và có bất kỳ loại tốc độ khung hình có thể sử dụng nào, bạn sẽ không muốn sử dụng http cũng như TCP.