2012-04-14 7 views
0

Ich möchte ffmpeg verwenden, um einen Live-Stream zu Flash Media Server zu verschlüsseln und zu veröffentlichen. Um iOS-Geräte zu unterstützen, muss ich auch HTTP Live Streaming implementieren. Das Video muss im H.264-Format vorliegen und das Audio sollte AAC sein. Ich habe nicht viel Erfahrung mit der Arbeit mit ffmpeg, und es fällt mir schwer, dies zur Arbeit zu bringen. Dies ist der Befehl, den ich versucht habe (und auch einige Varianten):Verwenden von ffmpeg mit Flash Media Server und HDS

ffmpeg.exe -threads 15 -f dshow -i video="USB2.0 UVC WebCam":audio="Microphone (Realtek High Defini" \ 
     -map_channel 0.1.1 -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 \ 
     -s vga -vb 100k -f flv "rtmp://<public-dns>/livepkgr/livestream1?adbe-live-event=liveevent" \ 
     -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 -s qvga -vb 200k \ 
     -f flv "rtmp://<public-dns>/livepkgr/livestream2?adbe-live-event=liveevent" \ 
     -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 -s vga -vb 350k 
     -f flv "rtmp://<public-dns>/livepkgr/livestream3?adbe-live-event=liveevent" 

Als ich dies ausführen, scheint es auf die FMS zu verbinden, aber dann bekomme ich eine Menge von Fehlermeldungen über dropped Frames - I bin mir nicht sicher, ob ALLE Frames erfolgreich kodiert werden. Meine CPU-Auslastung ist ebenfalls sehr hoch. Ich erhalte einen 404-Fehler von FMS, wenn ich die URL der * .m3u8-Datei für einen der einzelnen Streams eingabe (auf die Hauptdatei livestream.m3u8 kann jedoch zugegriffen werden). Ich habe auch versucht, in eine Datei anstelle von FMS auszugeben, ohne Erfolg. Alles was ich bekomme ist ein sehr verstümmelter Sound und kein Video.

Irgendwelche Vorschläge für welche Optionen/Befehle sollte ich verwenden, um dies zum Funktionieren zu bringen? Wird FFmpeg mit FMS verwendet, um HTTP Dynamic Streaming/HLS mit MP4-Video zu erstellen? Ich habe seit einiger Zeit gekämpft, um HDS/HLS arbeiten zu lassen, und jede Hilfe würde sehr geschätzt werden! Es sollte keinen Unterschied machen, aber ich benutze FMS auf Amazon EC2 mit ihrem AMI-Image.

Danke!

+0

http://blog.denivip.ru/index.php/2011/07/1893/?lang=de und http://betterlogic.com/roger/2012/08/ffmpeg-receiving-rtmp-stream- Von-Flash-Media-Server/kann helfen – rogerdpack

Antwort

2
-threads 15 

Ich bin zutiefst misstrauisch gegenüber diesem Wert. Meine eigene Forschung und Experimente mit dem Schalter threads sagt, dass jeder Wert über 4 ein Fehler ist. Versuchen Sie es zu entfernen, mit einem niedrigeren Wert, und/oder einen Wert teilbar durch 2.

-f flv 

Ich bin auch zutiefst misstrauisch dieses Wertes. FLV und h.264 spielen nicht gut zusammen. Verwenden Sie stattdessen das MP4.

Sie erwähnen die CPU ist "hoch", aber Sie erwähnen keinen Prozentsatz. Beachten Sie auch, dass Sie drei verschiedene Bitraten codieren - effektiv drei gleichzeitige Codierungsjobs. Und Sie erwähnen nicht die CPU, auf der Sie laufen. Ein Pentium 4 oder Core 2? Ich wäre nicht überrascht. Ein moderner Core i7, gut in Ordnung.

Warum verwenden Sie FFmpeg? Es ist sehr wahrscheinlich einfacher, Adobe Flash Media Live Encoder zu verwenden.

Verwandte Themen