Wie man Bytes aus CMSampleBufferRef , Zu Senden Über Netzwerk
Bin Captuing video mit AVFoundation Rahmen .Mit Hilfe der Apple-Dokumentation http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/03_MediaCapture.html%23//apple_ref/doc/uid/TP40010188-CH5-SW2
Jetzt habe ich Folgende Dinge
1.Erstellt videoCaptureDevice
2.Erstellt AVCaptureDeviceInput
- und set - videoCaptureDevice
3.Erstellt AVCaptureVideoDataOutput
und umgesetzt Delegieren
4.Erstellt AVCaptureSession
- input als AVCaptureDeviceInput und output als AVCaptureVideoDataOutput
5.In AVCaptureVideoDataOutput Delegate-Methode
-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
bekam ich CMSamplebuffer und Umgewandelt in UIImage Und getestet, um zu drucken UIImageview mit
[self.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];
Alles ging gut, bis zu dieser........
MEIN Problem IST,
Ich brauche zum senden von video-frames durch UDP-Socket .obwohl die folgende ist eine schlechte Idee ,habe ich versucht, UIImage, NSData und Senden über UDP-Tasche. Aber so bekam Verzögerung in der Videoverarbeitung.Meist problem, weil der UIImage zu NSDate
Also Bitte Gebt mir die Lösung Für mein problem
1)Irgendeiner Weise zu konvertieren CMSampleBUffer oder CVImageBuffer zu NSData ??
2)Wie Audio Queue Service und die Warteschlange für die Video-speichern UIImage und tun UIImage zu NSDate
Und Versenden ???
bin, wenn Reiten hinter den Falschen Algorithmus Bitte Weg mich in Richtung schreiben
Vielen Dank Im Voraus
InformationsquelleAutor der Frage Asta ni enohpi | 2011-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist der code, um auf die Puffer. Dieser code nimmt ein flaches Bild (z.B. BGRA).
Einen effizienteren Ansatz wäre die Verwendung einer NSMutableData oder einen Puffer-pool.
Senden 480 x 360 Bild jede Sekunde erfordern eine 4.1 Mbit /s-Verbindung vorausgesetzt 3 Farbkanäle.
InformationsquelleAutor der Antwort Steve McFarlin
Verwenden
CMSampleBufferGetImageBuffer
zu bekommenCVImageBufferRef
aus dem sample buffer, dann Holen Sie sich die bitmap-Daten aus es mitCVPixelBufferGetBaseAddress
. Dies vermeidet unnötiges kopieren der Bild.InformationsquelleAutor der Antwort Rhythmic Fistman