BE:Stream realisieren
Inhaltsverzeichnis
Livestream realisieren
Version 2 10.10.2014
Mittlerweile habe ich zum Thema Streaming viel Erfahrung sammeln können. Hiermit trage ich meine Erkenntnisse zusammen und reduziere diese auf das Wesentliche Einige ältere Informationen sind nur noch >hier> zu finden.
LaVo Berlin wird so gestreamt
Einmal eingerichtet, dann sind keine weiteren Arbeiten nötig.
Nur einschalten muss man noch und dann die Kamera bedienen.
Bei geringer Netzwerk Bandbreite, zB bei Demos ist dieses auch mit LTE/UMTS sehr gut möglich! Kamera und VidU haben eigene Akkus, die bis zu 3h streamen können.
Eine Erweiterung der Akku-Kapazität ist leicht möglich, da das VidiU 6-12V Eingangsspannung hat.
Für die Sony Camcorder gibt es Akkus für 9€ die bis zu 6h Laufzeit bieten. Auch am Server sind keine arbeiten nötig, wenn dieser einmal eingerichtet ist.
Noch offen: Transcoding mit entsprechendem Player, so das diese Streams auch problemlos am Handy/Smartphone gesehen werden können.
Die Kosten (einmalig!):
Teradek VidiU 654€
Sony HDR-CX330 Camcorder 235€ (Es geht auch jede andere Kamera. Was die Kamera können sollte: Optical Steady, 30 fach Zoom, Audio In, HDMI Out)
Stativ Manfrotto MKC3-H01M 50€
Weitere Kosten:
Server Linux mit guter Netz Anbindung!
Software (kostenlos) Red5, JW | JS Player
Einfach und preiswert streamen geht so!
Oder mit ManyCam [1], ( ein tolles Tool! ) geht so:
RED5 Linux Streaming- Server
www.red5.org ...enthält schon eine extrem-kurz-Anleitung! red5Wiki
RED5 Server installieren auf einem CentOS release 6.2 (Final)
1. Installation
http://tecadmin.net/installing-red5-media-server-on-centos-6/
http://tecadmin.net/steps-to-install-java-on-centos-5-6-or-rhel-5-6/
2. Firewall Befehle die zT nötig werden, siehe unten.
iptables -L -v -n
iptables -I INPUT -m tcp -p tcp --dport 1935 -j ACCEPT
iptables -I INPUT -m tcp -p tcp --dport 5080 -j DROP
iptables -I INPUT -m tcp -p tcp --dport 5080 -j ACCEPT
Start/Stop
/etc/init.d/red5 stop
/etc/init.d/red5 start
/etc/init.d/red5 restart
Log anzeigen lassen
tail -f /opt/red5/log/red5.log
tail -f /opt/red5/log/error.log
tail -f /opt/red5/log/red5Stremer.log
Anz. Verbindungen ermitteln: netstat |grep macromedia-fcs|wc
RED5 Bedienung/was mann wissen sollte
Red5 hat ein eigenen WEB Server auf:
Hier findet sich der Intsaller
hier dann auch die oflaDemo installieren!
hier gibt es eine Admin Console:
http://IP-des-Servers:5080/demos/adminPanel.html
Danach diesen Port sperren!!
geht mit: iptables -I INPUT -m tcp -p tcp --dport 5080 -j DROP
Anzahl der User/Zuschauer die den Strem sehen ermitteln
netstat |grep macromedia-fcs|wc (die erste Ziffer ist die Anzahl -1)
HTML für Player
Flash Player ist der: [www.video-flash.de flvplayer-1.9.7b]
...
<script type="text/javascript" src="jwplayer.js"></script> <script type="text/javascript"> jwplayer("mediaplayer").setup({flashplayer: "player.swf",type: "rtmp",file: "mirco", streamer: "rtmp://IP-des-Servers/oflaDemo", provider: "rtmp",image: "preview.jpg" }); </script>
..
Streamen mit Windows|Mac
Hier wird beschrieben, wie man die Daten der Kamera (also das Bild), oder die Daten von ManyCam an den Streaming-Server sendet.
Man spricht dann von: encoden, was nur so viel heißt wie: Die Kamera Daten in ein H.264 Datenstrom umzurechnen.
Dieser H.264 Datenstrom kann sehr unterschiedlich umgerechnet werden, eben mehr oder weniger Daten produzierend.
Um so größer die Auflösung und um so besser die Qualität sein soll, umso mehr Daten werden erzeugt.
[hier fehlen entsprechende Grafiken]
Ein sehr gutes Programm zum encoden ist der Adobe Flash Media Live Encoder 3.2,
bekommt man hier: http://www.videohelp.com/tools/Flash-Media-Live-Encoder
FAQ: http://www.adobe.com/de/products/flash-media-encoder/faq.html
mit folgenden Einstellungen...
..starten ....
Dann mit, wie Beispiel: http://IP-des-Servers/bvv/ anschauen/anhören :-)
Beim Mac wird mal wohl nach dem rmpt Port gefragt, dieser ist: 1935
ManyCam
ManyCam ist eine Windows|Mac Software die wie ein live Schnittplatz funktioniert.
Man kann Kameras überblenden/umschalten; Einblendungen/Bauchbinden vornehmen.
ManyCam kann auch als Eingabegerät für Adobe Flash Media Live Encoder 3.2
verwendet werden. Ist somit also bestens geeignet und kostet nur ca. 50$ und die lohen wirklich.
Zum Beispiel ist es damit auch möglich, Folien eines Vortrags direkt und ohne Verluste in
den Stream einzuspielen.
GrabBeeHD
Das HDMI-Capturen mit dem [GrabBeeHD http://www.ebay.de/itm/151363510645?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT] wie im Bild angedeutet,
funktioniert zZ leide nicht. Das Problem ist der Teiber unter Windows welcher die Bilddaten für andere Programm
nicht zur Verfügung stellt. Das heißt, man kann zwar das Bild einlesen, nur der Adobe Medien Encoder oder ManyCam
haben kein Zugriff auf das Bild (den Bildstream). Ich habe mit der Firma Kontakt aufgenommen.
Hinweise
Flash Video Infos
http://videoencoding.websmith.de/encoding-praxis/linux-flashplayer-einbinden.html
http://videoencoding.websmith.de/encoding-praxis/linux-qtfaststart-metadaten.html
http://blog.doomicile.de/2009/03/01/flash-videoplayer-und-mp4-video/
Wandeln mit "XMedia Recode" als .flv Files, dann ist der Header automatisch vorne und das Video wird beim streamen gleich angezeigt!
Streamen mit Linux
Linux Encoder (Sender des Streams am Client)
Sicher kann man auch unter Linux encoden (also die Daten von einer Kamera, per rtmp zu RDE5 Server senden).
Ich habe dieses noch nicht getestet, werde es aber bald mal tun. Gerne könnt ihr mir helfen dabei.
Ich denke, vor allem die Anbindung von einer Kamera an Linux könnte das Problem sein.
Hier ein paar Recherchen dazu:
http://www.ubuntugeek.com/tragtor-gui-for-ffmpeg.html
dvgrab - | ffmpeg -i - -re [your encoding params] -f flv rtmp:...
dvgrab -f raw -noavc - |LD_LIBRARY_PATH=$XUGGLE_HOME/lib ffmpeg -i - -f dv1394 -s 500x375 -r 10 -ar 22050 -ab 32k -ac 1 -b 750K -f flv rtmp://my.server.it/app/stream
http://wiki.ubuntuusers.de/dvgrab
Auch video4linux2 für WebCams ist vielversprechend.
Hier eine weitere, sehr informative Seite
Stream auf weiteren Server clonen
Hier ein Beispiel der Marina Kassel
ffmpeg -i rtmp://live.piratenpartei.de:1935/live/mp4:potsdam -vcodec copy -acodec copy -s WxH -f flv rtmp://85.25.44.111/oflaDemo/VidiUIdova01
Stream aufzeichnen
ffmpeg -i rtmp://live.piratenpartei.de:1935/live/mp4:potsdam -acodec copy -vcodec copy -y test.flv
ffmpeg Install on CentOS
https://www.digitalocean.com/community/tutorials/how-to-convert-videos-with-ffmpeg-on-centos-6
Web Chat
Eine Chat Lösung mit RED5
http://www.red5chat.com/index.html
Ist noch nicht getestet, insbesondere, wie viele User damit gleichzeitig arbeiten können.
Android
RTMP LIVE Stream Player
https://play.google.com/store/apps/details?id=air.tv.lotusfusion.rtmp.player.one
RED5 Server Hoster
Bei mir: @idova01 je nach Auflösung und kbps Stream, bis zu 200 Zuschauer.
https://aws.amazon.com/marketplace/pp/B008CIX2MA/ref=mkt_ste_l2_Gaming_f3?nc1=h_l2_g