Comment obtenir des Octets de CMSampleBufferRef , À Envoyer Sur le Réseau
Suis Captuing vidéo à l'aide de AVFoundation cadre de travail .Avec l'aide de la Documentation d'Apple http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/03_MediaCapture.html%23//apple_ref/doc/uid/TP40010188-CH5-SW2
Maintenant je n'ai la Suite des choses
1.Créé videoCaptureDevice
2.Créé AVCaptureDeviceInput
et définir videoCaptureDevice
3.Créé AVCaptureVideoDataOutput
et mis en œuvre Délégué
4.Créé AVCaptureSession
- ensemble d'entrée comme AVCaptureDeviceInput et de sortie comme AVCaptureVideoDataOutput
5.Dans AVCaptureVideoDataOutput Délégué méthode
-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
j'ai eu CMSamplebuffer et Converti en UIImage Et testé pour imprimer UIImageview à l'aide de
[self.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];
Tout s'est bien passé jusqu'à ce........
MON Problème EST,
J'ai besoin d'envoyer des images vidéo par Socket UDP .même si la suite est une mauvaise idée, j'ai essayé ,UIImage à NSData et de l'Envoyer via UDP Poche. Mais j'ai reçu tellement de Retard dans le Traitement de la vidéo.La plupart des problèmes à cause de UIImage à NSDate
Donc Merci de me Donner la Solution Pour mon problème
1)Aucun moyen de convertir CMSampleBUffer ou CVImageBuffer à NSData ??
2)Comme l'Audio File d'attente de Service et en File d'attente pour la Vidéo de stocker UIImage et ne UIImage à NSDate
Et L'Envoi ???
si je roule derrière le Mauvais Algorithme Veuillez chemin m'écrire direction
Merci D'Avance
Vous devez vous connecter pour publier un commentaire.
Voici le code pour obtenir le tampon. Ce code suppose un plat de l'image (par exemple, BGRA).
Une approche plus efficace serait d'utiliser un NSMutableData ou un pool de mémoire tampon.
L'envoi d'un 480x360 image à chaque seconde nécessitera un 4.1 Mbps connexion en supposant que 3 couches de couleur.
Utilisation
CMSampleBufferGetImageBuffer
pour obtenirCVImageBufferRef
à partir de l'échantillon de la mémoire tampon, puis obtenir les données bitmap avecCVPixelBufferGetBaseAddress
. Cela évite inutilement la copie de l'image.