Tôi đăng bài này trên diễn đàn nhà phát triển táo, chúng tôi thực hiện một cuộc thảo luận sôi nổi (lý do chơi chữ). Đây là câu trả lời cho người đã đưa ra một khái niệm tương tự.
Tôi nghĩ đúng nếu tôi sai, và cho chúng tôi một ví dụ làm thế nào nếu bạn không đồng ý rằng tạo ra một mpeg ts từ h264 thô mà bạn nhận được từ AVCaptureVideoDataOutput không phải là một nhiệm vụ dễ dàng trừ khi bạn chuyển mã bằng x264 hoặc một cái gì đó tương tự . giả sử cho một phút mà bạn có thể dễ dàng có được các tập tin mpeg ts, sau đó nó sẽ là một vấn đề đơn giản của biên dịch chúng trong một container m3u8, tung ra một máy chủ web nhỏ và phục vụ chúng. Theo như tôi biết và có rất nhiều ứng dụng thực hiện việc đó, sử dụng đường hầm cục bộ từ thiết bị không phải là vấn đề từ chối. Vì vậy, có lẽ bằng cách nào đó bạn có thể tạo ra hls từ thiết bị tôi đặt câu hỏi về hiệu suất bạn sẽ nhận được.
Vì vậy, vào kỹ thuật số 2 Vẫn sử dụng AvCaptureVideoDataOutput, bạn nắm bắt được khung, bọc chúng trong một số giao thức nhỏ gọn, json hoặc có lẽ một cái gì đó bí ẩn khác như bencode mở một socket và gửi chúng lên máy chủ của bạn. Ahh ... chúc may mắn tốt hơn có một mạng lưới mạnh mẽ tốt đẹp bởi vì gửi khung không nén thậm chí qua wifi sẽ yêu cầu băng thông.
Vì vậy, vào số kỹ thuật 3.
Bạn viết một bộ phim mới sử dụng avassetwriter và đọc lại từ các tập tin tạm thời sử dụng các hàm c tiêu chuẩn, điều này là tốt nhưng những gì bạn có là h264 thô, mp4 là chưa hoàn chỉnh do đó nó không có bất kỳ nguyên tử moov nào, bây giờ đến phần thú vị tái tạo tiêu đề này. chúc may mắn.
Vì vậy, vào tecnique 4 mà dường như thực sự có một số bằng khen
Chúng tôi tạo ra không chỉ một mà 2 avassetwriters, chúng tôi quản lý chúng bằng dispatch_queue UCLN, kể từ sau khi avassetwriters instantiation chỉ có thể được sử dụng một lần, chúng tôi bắt đầu đầu tiên trên một bộ đếm thời gian, sau một khoảng thời gian xác định trước nói rằng 10 giây chúng tôi bắt đầu thứ hai trong khi rách đầu tiên xuống. Bây giờ chúng tôi có một loạt tệp .mov với các nguyên tử moov hoàn chỉnh, mỗi nguyên tử này chứa video h264 được nén. Bây giờ chúng tôi có thể gửi chúng đến máy chủ và lắp ráp chúng thành một luồng video hoàn chỉnh. Cách khác, chúng tôi có thể sử dụng một streamer đơn giản mà có các tập tin mov và kết thúc tốt đẹp chúng trong giao thức rtmp bằng cách sử dụng librtmp và gửi chúng đến một máy chủ phương tiện truyền thông.
Có thể chúng tôi chỉ gửi từng tệp mov đến thiết bị apple khác, do đó, thiết bị được truyền đến thiết bị, câu hỏi đó đã bị hiểu sai nhiều lần, định vị thiết bị iPhone khác trên cùng mạng con qua wifi khá dễ dàng và có thể thực hiện được. Định vị một thiết bị khác trên tcp trên kết nối celluar gần như là phép thuật, nếu nó có thể được thực hiện chỉ trên các mạng di động sử dụng địa chỉ IP và không phải tất cả các mạng di động đều làm.
Giả sử bạn có thể, sau đó bạn gặp phải vấn đề khác vì không có trình phát video giới thiệu nào có thể xử lý chuyển đổi giữa nhiều tệp phim riêng biệt khác nhau. Bạn sẽ phải viết trình phát trực tuyến của riêng mình có thể dựa trên giải mã ffmpeg. (điều đó hoạt động khá tốt)
Bạn có thể xem mã ffmpeg để xem cách thực hiện. – vipw
ffmpeg là giải pháp rẻ tiền duy nhất, có bộ mã hóa thương mại nhưng chúng tốn rất nhiều tiền. HLS tạo ra trên điện thoại sẽ có một chút vấn đề, đã xem xét có thể rtmp, vì có vẻ như bạn có rất nhiều các mảnh tại chỗ. Tôi giả định những khoảng trống là bởi vì bạn cần phải đọc lại các tập tin mov hoàn chỉnh bạn đang tạo ra từ avassetwriter. –