Próbuję użyć AVCaptureSession do przechwytywania wideo z kamery, a następnie chciałbym użyć AVAssetWriter do zapisania wyników do pliku (w szczególności, użyj wielu AVAsetwriterów, aby zapisać przechwycenie do fragmentów filmów, ale nie potrzebujemy skomplikować to pytanie). Jednak mam problem z ustaleniem, gdzie dane muszą zostać przekazane do AVAssetWriter. W dokumentacji dla programistów Apple widziałem tylko dane AVCaptureSession przekazane do AVCaptureFileOutput. Może jednak coś mi brakuje. Czy AVAssetWriter może być użyty jako wynik sesji przechwytywania? Odpowiedni przykład lub fragment kodu (choć nie jest to konieczne) zostałby doceniony. Dziękuję bardzo!AvFoundation - Jak podłączyć AVCaptureSession i AVAssetWriter?
Odpowiedz
Jaki jest twój cel, dokładnie? Ponieważ o to pytasz (użycie AVAssetWriter jako wyjścia dla AVCaptureSession) nie jest możliwe.
Zasadniczo obiekt AVCaptureSession
ma wejścia (np. Kamera reprezentowana przez niektóre podklasy AVCaptureInput
) i wyjścia (w postaci AVCaptureOutput
). I AVAssetWriter
nie jest podklasą AVCaptureOutput
, więc nie ma możliwości użycia jej bezpośrednio z AVCaptureSession.
Jeśli chcesz użyć AVAssetWriter, musisz zapisywać dane używając instancję AVCaptureFileOutput
, a następnie odczytać go z powrotem z AVAssetReader
, modyfikować swoje dane jakoś a następnie wyjście go poprzez AVAssetWriter
.
Ostatnia rzecz, o której należy pamiętać: AVAssetReader
jest udokumentowana, aby nie gwarantować działania w czasie rzeczywistym.
Spójrz na http://www.gdcl.co.uk/2013/02/20/iOS-Video-Encoding.html. To pokazuje, jak połączyć wyjście przechwytywania z programem do zapisu zasobów, a następnie wyodrębnia dane z modułu zapisującego zasoby w celu przesyłania strumieniowego.
G
- 1. Jak korzystać z AVAssetWriter?
- 2. AVCaptureSession i AVCaptureMovieFileOutput timestamp
- 3. AVAssetWriter ignoruje wartość transformaty
- 4. Jak dodać autofokus do AVCaptureSession? SWIFT
- 5. Jak poprawnie zwolnić AVCaptureSession
- 6. Segmenty ciągłe AVAssetWriter
- 7. Jak podłączyć io.Reader i io.Writer?
- 8. VSCODE i TFVC jak podłączyć?
- 9. Używanie AVCaptureSession i AVAudioPlayer razem
- 10. AVFoundation, odcięte krawędzie w warstwie podglądu
- 11. Jak używać AVAssetWriter do zapisu dźwięku AAC w ios?
- 12. iPhone 4 AVFoundation: Przechwytywanie z przedniej i tylnej kamery jednocześnie
- 13. AVAssetWriter nieznany błąd
- 14. Nagrywanie wideo za pomocą AVFoundation
- 15. AVCaptureSession z wieloma wyjściami?
- 16. GraphViz - jak podłączyć podgrafy?
- 17. Jak mogę śledzić postęp pisania AVAssetWriter?
- 18. Implementacja HDR w AVCaptureSession
- 19. Jak podłączyć wydarzenie DOM?
- 20. AVFoundation Reverse Video
- 21. AVFoundation: Obsługa wideo w OpenGL - Jak odtwarzać i synchronizować dźwięk?
- 22. Animacja migawki AVFoundation iphone
- 23. ios AVFoundation stuknij, aby ustawić ostrość
- 24. __copy_helper_block_ crash w AVFoundation
- 25. Jak zrobić kwadratowe zdjęcie w iPodzie z avFoundation jak w aplikacji na Instagramie?
- 26. datagrip - Jak ponownie podłączyć konsolę?
- 27. Jak podłączyć JMS z PHP?
- 28. Nie nagrywanie dźwięku w AVCaptureSession
- 29. Jak podłączyć jsReport w AngularJS?
- 30. Jak podłączyć globalne wydarzenie PASTE?
Hmm, interesujące. Próbowałem odejść od tego, co znalazłem w odpowiedzi [tutaj] (http://stackoverflow.com/questions/13851481/http-live-streaming-server-on-iphone) i wznowionych komentarzy [tutaj] (http: //stackoverflow.com/questions/3444791/streaming-video-from-an-hiphone) (między innymi), w którym sugerują streaming można uzyskać poprzez utworzenie dwóch zestawów AVA i używanie ich pojedynczo. – golmschenk
Wygląda na to, że na podstawie moich poszukiwań najpopularniejszy sposób przesyłania strumieniowego wideo z kamery na iPhone'a został osiągnięty. Teraz, kiedy już o tym wspomniałeś, jestem bardziej zdezorientowany, dlaczego ta metoda jest zasugerowana ... – golmschenk
Nie musisz używać 'AVAssetWriter', aby podzielić wideo na porcje 10-sekundowe. Możesz to zrobić za pomocą 'AVCaptureMovieFileOutput'; ustaw właściwość 'maxRecordedDuration' na 10s i ponownie uruchom nagrywanie (do nowego pliku) w' -captureOutput: didFinishRecordingToOutputFileAtURL: fromConnections: error: ', aby uzyskać następne 10 sekund. – zadr