Was ist der beste Weg des live-streaming-iphone-Kamera ein media server?
Gemäß dieser Welche Techniken Sind am Besten Live Stream-iPhone-Video-Kamera-Daten Auf einem Computer? möglich ist, um die komprimierten Daten von der iphone Kamera, aber als ich gelesen habe, in dem AVFoundation-Referenz erhalten Sie nur unkomprimierte Daten.
Also die Fragen sind:
1), Wie man komprimierte Bilder und audio von iPhone-Kamera?
2) Enkodieren von unkomprimierten frames mit ffmpeg-API ist schnell genug für Echtzeit-streaming?
Jede Hilfe wird wirklich geschätzt.
Dank.
- Wie Sie dieses Problem gelöst?
- Ich landete immer unkomprimierte Daten (Bilder und Audio) von AVFoundation und Codierung+streaming mit FFmpeg-API. Es funktioniert ziemlich gut in das iPhone 4 bekommen bis zu 30 FPS mit einer Auflösung von 192x240. In höheren Auflösungen fällt es zu viele frames.
- Wie dies zu tun bitte teilen Sie es, Es für uns hilfreich ,vielen Dank
- Get unkomprimierte Daten aus AVFoundation, dann konvertieren Sie jedes CMSampleBuffer zu FFmpeg AVPicture. Kodieren Sie die AVPicture Beispiel mit FFmpeg. Werfen Sie einen Blick auf FFmpeg ffmpeg.c - Datei als Beispiel dafür, wie dies zu erreichen Codierung Teil. Hoffe, dies hilft Ihnen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie wahrscheinlich bereits wissen....
Können Sie nicht tun. Das AVFoundation-API hat verhindert, dass diese aus jedem Blickwinkel. Ich habe sogar versucht, named pipes, und einige weitere sneaky unix-foo. Kein solches Glück. Sie haben keine andere Wahl, als zu schreiben es in eine Datei. In deinem verlinkten post einen Benutzer vorschlagen, der Einrichtung des callback zu liefern codierte frames. Soweit ich weiß, ist dies nicht möglich, H. 264-streams. Die Erfassung delegieren liefern Bilder codiert, in einer bestimmten pixel-format. Es ist der Film, den Schriftsteller und AVAssetWriter, die die Codierung.
Ja, es ist. Allerdings müssen Sie libx264, die bekommt man in GPL-Gebiet. Das ist nicht gerade kompatibel mit dem app store.
Ich würde vorschlagen, mit AVFoundation und AVAssetWriter aus Gründen der Effizienz.
Stimme ich mit Steve. Ich möchte hinzufügen, dass auf den Versuch, mit Apple ' s API, die Sie gehen zu müssen einige ernsthaft böse Hacker. AVAssetWriter standardmäßig verbringt eine Sekunde vor dem verschütten seinen Puffer in die Datei. Ich habe noch keinen Weg gefunden, das zu ändern mit den Einstellungen. Der Weg um dass zu sein scheint, zwingen kleine Datei schreibt und die Datei schließen mit dem Einsatz von mehreren AVAssetWriters. Aber das führt viel overhead. Es ist nicht schön.
Definitiv Datei einen neuen feature-request bei Apple (wenn Sie ein iOS-Entwickler). Je mehr von uns das tun, desto wahrscheinlicher werden Sie fügen Sie irgendeine Art von Schriftsteller, die schreiben können, um einen Puffer und/oder ein Strom.
Einer Ergänzung würde ich machen, was Steve sagte auf der x264-GPL Problem ist, dass ich denke, dass kann man eine kommerzielle Lizenz für das, was ist besser als GPL, aber natürlich Kosten Sie Geld. Aber das bedeutet, dass Sie noch gebrauchen könnte und es ziemlich OK Ergebnisse, und nicht zu öffnen, Ihre eigenen app-Quelle. Nicht so gut wie ein augmented-Apple-API mithilfe Ihrer hardware-codecs, aber nicht schlecht.