# Audio/Video File Streamen



## Egatlov (5. Jul 2016)

Hallo zusammen,
mein Plan ist es ein Audio bzw ein VideoFile zu streamen. Das File soll in einer Datenbank abgelegt werden und in einem AngularJS Frontend angezeigt werden. Des weiteren soll es auch von einer App aus erreichbar sein. 

Ich habe jetzt schon einiges im Internet gelesen: 
Red5 Server (klingt für mich etwas Overpowered und eig. will ich nicht ein zweiten Server laufen lassen)
Xuggler FFmpeg (sollen zwei librarys sein die das können allerdings finde ich nirgends ein Beispiel)
RTP RTMP und andere Protokolle (der Hinweis ist immer guck dir das mal an, allerdings finde ich keine Library dafur um das in Java umzusetzen bzw ein Beispiel das ich nachvollziehen kann) 

In meinem Kopf stell ich mir vor das man ein Call bekommt und das File schickt. Dieses wird in Parts gesendet und wird dann im Browser/ App wiedergegeben. Sobald X-Parts da sind wird bei jedem neuen das älteste verworfen (Speicher minimieren). Mir ist nicht klar wie man das realisieren kann Beziehungsweise eine der oben genannten Hilfestellungen verwendet bzw ob das überhaupt Sinn macht. 

Meine Frage hat das von euch schon jemand umgesetzt / programmiert und kann erklären wie er / sie vorgegangen ist? Das bedeutet welche Bibliothek verwendet wurde oder wie man es implementiert hat und wie man es im Frontend wiedergegeben hat. 

Hoffe mir kann jemand helfen danke im voraus!


----------



## Tobse (6. Jul 2016)

Du hast schon den richtigen Ansatz 

Prinzipiell gilt folgendes: Im HTML5 Standard sind Video-Formate definiert, welche unterstützt werden müssen. Wenn du die Video-Daten in dieses Format bekommst kannst du dich auf die Browser verlassen.
Ab HTTP 1.1 gibt es auch gesplittete Downloads mit den Range Headern. Damit kann im prinzip jeder bessere HTTP Server den Stream senden.

In der App sieht es etwas anders aus: Die App kann auf die Http Range-Requests zurückgreiffen, mehr braucht sie nicht. Allerdings wirst du hier mehr aufwand treiben müssen um das Video auf dem Gerät wiedergeben zu können; ich kenne mich aber mit iOS / Android viel zu wenig aus, um hier eine klare Ansage machen zu können.


----------

