Ağ üzerinden bir iPhone kamera video girişi (kare) gönderen bir Swift uygulaması yazıyorum, böylece daha sonra bunları bir macOS uygulamasında görüntüleyebilirim.
Şu anda, video kareleri
AVCaputreSession ve bir
PixelBuffer -dan
captureOutput yöntem. Her kare çok büyük olduğu için (RAW piksel)
CVPixelBuffer buna
CGImage ile
VTCreateCGImageFromCVPixelBuffer ve daha sonra
UIImage JPEG sıkıştırma ile (% 50). Sonra bu JPEG'i ağ üzerinden gönderiyorum ve Mac OS uygulamasında görüntülüyorum.
Gördüğünüz gibi, bu ideal olmaktan çok uzak ve bir iPhone 11'de ~ 25 FPS'de çalışıyor. Bazı araştırmalardan sonra GPU Image 2 ile geldim. Görünüşe göre kameradan veri alabilir ve böyle bir şey uygulayabiliriz (böylece dönüşüm GPU'da yapılır):
camera = try Camera(sessionPreset:AVCaptureSessionPreset640x480) let pictureOutput = PictureOutput() pictureOutput.encodedImageFormat = .JPEG pictureOutput.imageAvailableCallback = {image in // Send the picture through the network here } camera --> pictureOutput
Ve bu UIImage'ı iletebilmeli ve macOS uygulamasında görüntüleyebilmeliyim. Tüm bu süreci uygulamanın daha iyi bir yolu var mı? Belki de görüntüleri JPEG'e dönüştürmek yerine iPhone'un H264 donanım kodlamasını kullanabilirim, ancak bu o kadar basit değil (ve GPUImage'ın okuduğumdan böyle bir şey yaptığı görünüyor).
Herhangi bir yardım takdir, şimdiden teşekkürler!