Wie kann ich Videos von ARKit aufnehmen?

8

Jetzt teste ich ARKit / SceneKit-Implementierung. Das grundlegende Rendern auf dem Bildschirm funktioniert irgendwie, dann möchte ich versuchen, das, was ich auf dem Bildschirm sehe, in ein Video aufzunehmen.

Nur für die Aufnahme von Scene Kit fand ich diesen Gist :

%Vor%

aber das Bild wird nicht von der Gerätekamera gerendert.

Also habe ich angefangen nach dem Weg zu suchen, dies auch zu tun. Bisher habe ich den Weg gefunden, das aufgenommene Bild als CVImageBufferRef zu greifen, indem ich auf ARFrame zugreife. Und Apples GLCameraRipple-Beispiel scheint mir dabei zu helfen, die OpenGL-Textur daraus zu machen.

Aber meine Frage ist, wie man es in der Rendering-Schleife zeichnet. Dies mag für OpenGL-erfahrene OpenGL-Entwickler offensichtlich sein, aber ich habe nur sehr wenig Wissen über OpenGL, daher kann ich nicht herausfinden, wie ich das zu dem obigen Code hinzufügen kann.

    
Takeshi Yokemura 28.06.2017, 02:40
quelle

5 Antworten

4

Sie können alles, was auf dem Bildschirm zu sehen ist, aufzeichnen (oder es live an Dienste wie Twitch senden), indem Sie ReplayKit , ARKit und SceneKit Inhalt enthalten.

(Wie Apple auf der WWDC erklärt hat, ist ReplayKit tatsächlich die Grundlage für die Bildschirmaufnahmefunktion des Control Center in iOS 11.)

    
rickster 28.06.2017 04:14
quelle
1

Ich weiß nicht, ob Sie es bis jetzt geschafft haben oder nicht, aber lacyrhoades, die Person, die die Klasse geschrieben hat, auf die Sie verwiesen haben, hat ein anderes Projekt auf github veröffentlicht, das zu tun scheint, wonach Sie fragen. Ich habe es benutzt und es schafft, das SceneView mit AR-Objekten sowie den Kameraeingang aufzunehmen. Sie können es über diesen Link finden:

Ссылка

Wenn Sie es jedoch mit AR verwenden möchten, müssen Sie das ARSceneView für das Projekt konfigurieren, das er erstellt, da sein Szenario nur ein SceneView ausführt, nicht eines mit AR.

Ich hoffe, es hilft.

    
user4558739 24.07.2017 11:00
quelle
1

Ich habe gerade dieses Framework gefunden, ARVideoKit genannt, und es scheint einfach zu implementieren zu sein, außerdem haben sie mehr Funktionen wie GIFs und Live-Fotos.

Das offizielle Framework-Repo ist: Ссылка

Um es zu installieren, müssten Sie den Repo klonen und die .framework-Datei in die eingebettete Binärdatei Ihres Projekts ziehen.

Dann ist die Implementierung ziemlich einfach:

  1. import ARVideoKit in Ihrer UIViewController -Klasse

  2. Erstellen Sie eine RecordAR? Variable

    var videoRec:RecordAR?

  3. Initialisiere deine Variable in viewDidLoad

    videoRec = RecordAR(ARSpriteKit:sceneView)

  4. Bereiten Sie RecordAR in viewWillAppear

    vor

    videoRec.prepare(configuration)

  5. Beginnen Sie mit der Aufnahme eines Videos

    videoRec.record()

  6. Stoppen und auf Kamera rollen exportieren!

    videoRec.stopAndExport()

Sehen Sie sich die Dokumentation des Frameworks an, es unterstützt mehr Funktionen zur Verwendung!

Sie finden ihre Dokumentation hier: Ссылка

Hoffe, dass geholfen hat!

    
Swift Learner 06.11.2017 04:25
quelle
-2

Wenn Sie Ihr Gerät mit Ihrem Mac verbinden können, ist es sehr einfach, mit dem QuickTime Player Bildschirm (und Ton) von Ihrem iOS-Gerät aufzunehmen.

Wählen Sie in QuickTime eine neue Filmaufnahme im Menü Datei und dann im Aufnahme-Dialog neben der großen roten Aufnahmetaste einen kleinen Dropdown-Pfeil, über den Sie den Audioeingang und den Videoeingang auswählen können. Wählen Sie Ihr i-Gerät dort und Sie sind bereit zu gehen.

    
bjarnel 28.06.2017 09:00
quelle
-3

Wenn Sie ARKit verwenden, verwenden Sie iOS 11.

iOS 11 bietet integrierte Bildschirmaufnahmen (mit Mikrofonunterstützung).

Allerdings ist es ab iOS 11 Beta 2 ein kleiner Buggy - funktioniert aber.

Zusammenfassend:

  • Unter Einstellungen, Kontrollzentrum, Anpassen: füge das Screen Recording Widget
  • hinzu
  • Drücken Sie im Control Center (doppeltippen auf die Home-Taste oder schieben Sie es vom unteren Rand des Bildschirms nach oben) auf die Schaltfläche Screen Recording , um das Mikrofon zu konfigurieren (oder lang tippen) Aufnahme
  • Tippen Sie auf Bildschirmaufnahme , um die Aufnahme zu starten
  • Führen Sie Ihre App aus
  • Gehen Sie zurück zum Kontrollzentrum und tippen Sie auf Bildschirmaufnahme , um die Aufzeichnung zu stoppen
  • Das Video befindet sich in Ihrer Fotorolle.

Der fehlerhafte Teil ist, dass es mit einigen Landschaftsanwendungen nicht funktioniert und es nicht immer aufzeichnet.

Hier ist ein Tutorial, das ich ausführlicher geschrieben habe:

Ссылка

    
peterept 09.07.2017 09:57
quelle

Tags und Links