Hallo,
ich möchte die Darbietung eines Sportlers, mit einer MacOS-App, als Video aufzeichnen. Die Aufzeichung soll mit 1 oder 2 Kameras durchgeführt werden. Am Ende der Darbietung soll der Screen eingeblendet werden, der die Bewertung darstellt.
Erste Gehversuche habe ich erfolgreich mit einer Kamera und AVCaptureSession, AVCaptureConnection, AVCaptureMovieFileOutput und AVCaptureVideoPreviewLayer gemacht.
Nur habe ich keinen Plan wie ich den Screen mit der Bewertung in das Video eingeblendet bekomme. Googeling hat mir keine Idee für eine Lösung für diese Aufgabe gebracht.
Wie kann ich einen Screen (NSWindow) in das gerade aufgezeichnete Video einblenden?
Danke für eure Vorschläge.
Inzwischen habe ich AVCaptureScreenInput entdeckt und damit experimentiert. Allerdings komme ich nicht wirklich weiter. Hier habe ich meinen Code mit dem ich die Session erstelle:
Alles anzeigen
Füge ich beide Inputs hinzu, sehe ich nur das Bild der Kamera, Wenn nur der AVCaptureScreenInput zur session hinzugefügt wird, sehe ich den Screen im Video.
Wie kann ich beide sehen?
Danke
ich möchte die Darbietung eines Sportlers, mit einer MacOS-App, als Video aufzeichnen. Die Aufzeichung soll mit 1 oder 2 Kameras durchgeführt werden. Am Ende der Darbietung soll der Screen eingeblendet werden, der die Bewertung darstellt.
Erste Gehversuche habe ich erfolgreich mit einer Kamera und AVCaptureSession, AVCaptureConnection, AVCaptureMovieFileOutput und AVCaptureVideoPreviewLayer gemacht.
Nur habe ich keinen Plan wie ich den Screen mit der Bewertung in das Video eingeblendet bekomme. Googeling hat mir keine Idee für eine Lösung für diese Aufgabe gebracht.
Wie kann ich einen Screen (NSWindow) in das gerade aufgezeichnete Video einblenden?
Danke für eure Vorschläge.
Inzwischen habe ich AVCaptureScreenInput entdeckt und damit experimentiert. Allerdings komme ich nicht wirklich weiter. Hier habe ich meinen Code mit dem ich die Session erstelle:
C-Quellcode
- self.session = [[AVCaptureSession alloc] init];
- [..]
- AVCaptureDevice * myDevice = nil;
- AVCaptureDeviceInput * inputDevice = nil;
- NSArray * allDevices = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera,AVCaptureDeviceTypeExternalUnknown]
- mediaType:AVMediaTypeVideo
- position:AVCaptureDevicePositionUnspecified].devices;
- for (AVCaptureDevice * device in allDevices) {
- NSLog(@"Device: %@ %li", device.localizedName, (long)device.position);
- if ( device.position == AVCaptureDevicePositionUnspecified) {
- myDevice = device;
- }
- }
- inputDevice = [AVCaptureDeviceInput deviceInputWithDevice:myDevice error:nil];
- if ( [self.session canAddInput:inputDevice] ) {
- [self.session addInput:inputDevice];
- }
- [..]
- CGDirectDisplayID screenID = CGMainDisplayID();
- AVCaptureScreenInput * screenInput = [[AVCaptureScreenInput alloc] initWithDisplayID:screenIDs[0]];
- screenInput.scaleFactor = 0.5;
- CMTime minimumFrameDuration = CMTimeMake(1, (int32_t)1);
- screenInput.minFrameDuration = minimumFrameDuration;
- if ( [self.session canAddInput:screenInput] ) {
- [self.session addInput:screenInput];
- }
- // Save captured video to an file at given URL
- // URL given at start capturing
- self.fileOutput = [[AVCaptureMovieFileOutput alloc] init];
- if ( [self.session canAddOutput:self.fileOutput] ) {
- [self.session addOutput:self.fileOutput];
- }
Wie kann ich beide sehen?
Danke
Wenn Du immer nur das tust was du schon kannst - wirst du immer das bleiben, was du heute bist.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von uschu.do ()