Comment faire pour appliquer le filtre à la Vidéo en temps réel à l'aide de Swift
est possible d'appliquer le filtre à AVLayer et l'ajouter à vue comme addSublayer? Je veux changer les couleurs et ajouter du bruit à la vidéo de la caméra à l'aide de Swift et je ne sais pas comment.
J'ai pensé, qu'il est possible d'ajouter filterLayer et previewLayer comme ceci:
self.view.layer.addSublayer(previewLayer)
self.view.layer.addSublayer(filterLayer)
et cela peut peut-être créer une vidéo avec mon filtre personnalisé, mais je pense que c'est possible de le faire plus efficacement avec la AVComposition
Donc ce que j'ai besoin de savoir:
- Quelle est la façon la plus simple d'appliquer le filtre de la caméra vidéo de sortie en temps réel?
- Est possible de fusionner AVCaptureVideoPreviewLayer et CALayer?
Merci pour toutes les suggestions..
Vous n'avez pas beaucoup d'info sur ce que vous faites, mais il est possible de modifier le flux vidéo en direct à l'aide d'un
Merci! GLKView regarder mieux pour moi. 🙂 Tout simplement: j'ai besoin d'appliquer le filtre d'images vidéo en direct et d'avoir un choix pour l'enregistrer dans un fichier. Je suis de faire une sorte de caméra vidéo avec des filtres.
GLKView
au lieu d'un AVCapturePreviewLayer
et en appliquant le filtre à chaque image dans captureOutput(capptureOutput: didOutputToSampleBuffer: fromConnection connection:)
.Merci! GLKView regarder mieux pour moi. 🙂 Tout simplement: j'ai besoin d'appliquer le filtre d'images vidéo en direct et d'avoir un choix pour l'enregistrer dans un fichier. Je suis de faire une sorte de caméra vidéo avec des filtres.
OriginalL'auteur David Sýkora | 2015-09-03
Vous devez vous connecter pour publier un commentaire.
Il y a une autre alternative, utiliser un AVCaptureSession de créer des instances de CIImage à laquelle vous pouvez appliquer CIFilters (dont il y a des charges, de flou, de correction des couleurs pour les VFX).
Voici un exemple d'utilisation de la ComicBook effet. En un mot, créer un AVCaptureSession:
Créer un AVCaptureDevice pour représenter la caméra, ici, je suis le réglage de la caméra arrière:
Puis créer une mise en œuvre concrète de l'appareil et de le joindre à la session. Dans Swift 2, l'instanciation de AVCaptureDeviceInput peut jeter une erreur, nous avons donc besoin de l'attraper:
Maintenant, voici un peu de "chasse aux sorcières': bien que nous n'avons pas l'utilisation d'un AVCaptureVideoPreviewLayer mais il est nécessaire pour obtenir l'échantillon délégué de travail, nous avons donc créer une de ces:
Ensuite, nous créons une sortie vidéo, AVCaptureVideoDataOutput que nous allons utiliser pour accéder à la vidéo en direct:
S'assurer que l'auto implémente AVCaptureVideoDataOutputSampleBufferdelegate, nous pouvons définir le tampon d'échantillon délégué de la sortie vidéo:
La vidéo de sortie est fixée à la session de capture:
...et, enfin, nous avons commencer la session de capture:
Parce que nous avons placé le délégué, captureOutput sera invoquée à chaque capture d'image. captureOutput est passé d'un tampon d'échantillon de type CMSampleBuffer et il faut juste deux lignes de code pour convertir les données d'un CIImage de Base de l'Image de la poignée:
...et que les données de l'image est transmise à notre bande Dessinée effet qui, à son tour, est utilisé pour remplir un affichage de l'image:
J'ai le le code source de ce projet disponible dans mon dépôt GitHub ici.
Cannot invoke 'setSampleBufferDelegate' with an argument list of type '(ViewController, queue: dispatch_queue_attr_t!)'
Merci pour les paroles! Jetez un oeil à cette classe: github.com/FlexMonkey/ParticleCam/blob/master/ParticleCam/...
Ah, ma faute... j'ai été en utilisant iOS 8.4.1 Donc le problème est résolu. Encore une fois, merci.
puis-je enregistrer des vidéos avec cette effets ?
vous pourriez, mais vous devriez écrire le tampon de sortie vers un fichier, je pense que vous faites cela avec
AVAssetWriterInputPixelBufferAdaptor
, voir stackoverflow.com/questions/3741323/...OriginalL'auteur Simon Gladman