2016-03-22 21 views
0

Ich wollte also eine Echtzeit-Live-Streaming-Anwendung erstellen. Im Wesentlichen würde die Anwendung den Mikrofon-Feed von einer Xcode-Anwendung an eine Website senden, wo sie in Echtzeit betrachtet werden kann. Ist FFMPEG die beste Lösung dafür? Wie würde ich das machen? Wenn das zu weit gefasst ist, wie verwende ich dann das FFMPEG-Framework in einer OS X objective-c-Anwendung?Verwenden von FFMPEG in einer OS X-Anwendung

+0

Führen Sie eine Suche mit '[objective-c] ffmpeg.' –

+0

Hallo El Tomate! Danke für die Antwort! Ich habe mir den Wrapper hier angesehen: https://github.com/OpenWatch/FFmpegWrapper, aber ich bin mir nicht sicher, wie man ihn mit Xcode ... – Sokco

+0

verwendet und wie würde ich Live-Audio mit diesem FFmpeg-Wrapper streamen? Es scheint nicht so, als könnte ich normale FFmpeg-Befehle verwenden – Sokco

Antwort

0

direkt an Ihre Fragen zu beantworten:

(1) Ist FFmpeg die beste Lösung für dieses?

Kommt drauf an. Wenn Sie eine Live-Streaming-Umgebung einrichten, werden Sie wahrscheinlich über FFMPEG, VLC und gstreamer stolpern. Dies sind die Optionen, mit denen Sie einfach Video/Audio streamen können. Daher kann ja FFMPEG als Teil der Lösung verwendet werden. Bitte sehen Sie sich die folgende Frage an: DIY Video Streaming Server

(2) Wie würde ich dabei vorgehen?

Ihre Anforderung besteht darin, eine Live-Streaming-Anwendung zu erstellen, die den Mikrofoneingang ins Internet sendet. Dazu gehören die folgenden Schritte:

(0) Ihre Xcode-Anwendung muss eine Methode zum Starten dieses Prozesses bereitstellen. Sie müssen nicht unbedingt ein Framework integrieren, um dies zu erreichen.

(1) Streaming/Restreaming

Verwenden FFMPEG oder VLC dem Gerät greifen und sie lokal stream:

ffmpeg -i audioDevice -acodec libfaac -ar 44100 -ab 48k -f rtp rtp://host:port 

(2) Segmentieren für HTTP-Live-Streaming *

Verwenden a Segmentierer wie zum Beispiel: mediastreamsegmenter (Apple), livehttp (VLC) oder segment (FFMPEG), um Ihren Stream für die Webzustellung vorzubereiten:

vlc -vvv -I dummy <SOURCEADDRESS> --sout='#transcode{acodec=libfaac,ab=48}:std{access=livehttp{seglen=10,delsegs=false,numsegs=10,index=/path/to/your/index/prog_index.m3u8,index-url=YourUrl/fileSequence######.ts},mux=ts{use-key-frames},dst=/path/to/your/ts/files/fileSequence######.ts}' 

* Sie könnten auch einfach VLC verwenden, um Ihr Audiogerät mit qtsound (siehe question) und bereiten Sie es für das Streaming mit Livehttp.

(3) HTML 5 Lieferung

Veröffentlichen Sie Ihren Strom

<audio> 
<source src="YOUR_PATH/playlist.m3u8" /> 
</audio> 

(3) Wenn das zu breit ist, dann, wie verwende ich das FFMPEG Rahmen in einem OS X Objective-c-Anwendung ?

entweder eine externe Wrapper Framework verwenden FFMPEG Funktionalität für den Zugriff auf und die Tutorials wenden Sie sich an diesen Rahmen zu arbeiten, oder Sie können auch diesen Ansatz durch NSTask mit Ihrem Befehlszeilenargumente in Objective-C wickeln und einfach diese Aufgaben ab Ihre Anwendung - wie in dieser question.

Eine andere Möglichkeit wäre, VLCKit zu verwenden, die VLC-Funktionalität in einem Framework für Objective-C (VLCKit wiki) bietet.Wenn ich mich jedoch mit Streaming-Herausforderungen beschäftige, arbeite ich lieber mit den eigentlichen Befehlen, anstatt eine andere Ebene des Frameworks dazwischen zu schieben, der einige Optionen fehlen könnte.


Ich hoffe, dies weist Sie in die richtigen Richtungen. Es gibt mehrere Möglichkeiten, dies zu lösen. Es ist eine breite Frage, daher dieser breite Ansatz, um Ihre Frage zu beantworten.

Verwandte Themen