streaming-server
Inhaltsverzeichnis
Streaming-Server
- Maxdata silber, Intel P4
- openSUSE 11.3 32-Bit
- Benutzer: stream (wichtig für vlc!!!)
- 40 GB HDD
- 2GB RAM
Für Maturaball
- Videokammerl: Raum 114, Netzwerkdose auf A gepatcht
- Strom für Kamera: Steckdose hinter Scheinwerfer 1. OG auf Höhe Chemiekammerl
- Anschaffung für Maturaball 2012: 1 langes Kabel!!!
Vorbereitungen
- Packman-Repository
zypper ar -f http://packman.inode.at/suse/11.3 packman
- Software
zypper in ffmpeg vlc mplayer flash-player x11vnc xawtv
- Canon Kamera
- Ausgang Canon-Klinke ↔ Cinch (RCA) ↔ S-Video
- Medion TV Karte
- /etc/init.d/boot.local
modprobe bttv card=54
- Audio über Line-in der Onboard Soundkarte
- alsamixer zum Aktivieren von Line-in
Bild testen
xawtv
- Beim ersten Mal funktioniert xawtv nie, mit q beenden. Dann beim zweiten Mal die Videoquelle und das Bildformat umstellen (rechte Maustaste, PAL, S-Video)
LIVE Video und Audio
- view.sh
#!/bin/bash mplayer tv:// -tv fps=25:buffersize=64:driver=v4l2:width=800:height=600:device=/dev/video0:forceaudio:adevice=/dev/dsp:norm=pal:input=2 -vo x11
Video und Audio aufnehmen
- view.sh
#!/bin/bash # Aufnahme 1:1 (große Dateien!) # -ovc copy # -oac pcm nice -n 20 mencoder tv:// \ -tv fps=25:buffersize=64:driver=v4l2:width=800:height=600:device=/dev/video0:forceaudio:adevice=/dev/dsp:amode=1:norm=pal:input=2 \ -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=4000:vhq:vqmin=2:vqmax=31 \ -oac mp3lame -lameopts cbr:br=256:q=0:aq=0:mode=0 \ -o filename.avi
Streamen
- Extern ins Internet: vlc → Netzwerkstream öffnen → http://bgweiz.at:31337
- Auf Einstein Port-Forwarding aktivieren, siehe /etc/init.d/iptables.sh
- Hausintern: vlc → Netzwerkstream öffnen → http://192.168.100.40:8080
- stream.sh
#!/bin/bash cvlc v4l2:// :v4l2-dev="/dev/video0" :v4l2-input=2 :v4l2-adev=/dev/dsp :input-slave=alsa:// \ --sout '#transcode{vcodec=wmv2,vb=800,scale=0.5,acodec=mpga,ab=512,samplerate=44100,channels=1}:duplicate{dst=std{access=http{mime=video/x-ms-wmv},mux=asf,dst=:8080}}' \ :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep #cvlc final.wmv \ #--sout '#transcode{vcodec=mp1v,vb=2600,scale=0.75}:duplicate{dst=std{access=http{mime=video/x-ms-wmv},mux=asf,dst=:8080}}' \ #:no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep --no-sout-audio
Bildschirm freigeben über das Netzwerk
- x11vnc
- x11.sh
#!/bin/bash x11vnc -display :0 -ncache 10 -viewonly
- Alternativ: Bildschirm der Clients anzeigen
- Am Client TightVNC Server installieren
- Zusätzlich Remote-Desktop erlauben
Streaming-Server (alt)
- Aktuelle ffmpeg Version von Packman: ffmpeg-0.5.21000svn-0.pm.1.5.i586
- /etc/ffserver.conf
Port 31337
BindAddress 0.0.0.0
MaxClients 1000
MaxBandwidth 100000
# Comment the following, on production use
NoDaemon
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 100M
#Launch ffmpeg -y -v 9 -f video4linux2 -vc 2 -tvstd PAL -s 480x384 -b 512000 -r 10 -an -i /dev/video0
Launch ffmpeg -y -v 9 -f video4linux2 -vc 2 -tvstd PAL -s 480x384 -b 256000 -r 15 -an -i /dev/video0
#Launch ffmpeg -r 10 -s 320x240 -f video4linux2 -i /dev/video0 -vcodec flv http://localhost:31337/feed1.ffm
</Feed>
#<Stream stream.flv>
# Feed feed1.ffm
# Format flv
# VideoCodec flv
# VideoFrameRate 2
# VideoBufferSize 80000
# VideoBitRate 256
# VideoQMin 1
# VideoQMax 5
# VideoSize 480x384
# PreRoll 0
# Noaudio
#</Stream>
## SWF output
#<Stream stream.swf>
# Feed feed1.ffm
# Format swf
# VideoCodec flv
# VideoFrameRate 15
# VideoBitRate 200
# VideoQMin 5
# VideoQMin 5
# VideoSize 320x240
# PreRoll 0
# Noaudio
#</Stream>
# ASF compatible
<Stream stream.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
VideoBufferSize 40
VideoGopSize 30
AudioBitRate 64
StartSendOnKey
Noaudio
</Stream>
# SWF output
<Stream stream.swf>
Feed feed1.ffm
Format swf
VideoCodec flv
VideoFrameRate 15
VideoBitRate 512
VideoQMin 5
VideoQMax 9
VideoSize 480x384
PreRoll 0
Noaudio
</Stream>
- Zum Starten:
ffserver &
- Zum Stoppen:
killall ffserver
EINSTEIN
- /srv/www/htdocs/ball.bgweiz.at/live/index.php
<html><head>
<title>Live-Streaming</title>
<meta http-equiv="refresh" content="1200" />
<link rel="stylesheet" href="../style.css" />
</head>
<body style="background-color: #000000; text-align: center">
<h1 style="color: #ffffff;">Flash Live Stream</h1>
<p><a href="/">zurück</a></p>
<p><a href="http://193.170.221.1:31337/stream.asf">Windows Media Player Stream</a></p>
<p>
<object classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000" width="480" height="384"
codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0">
<param name="movie" value="http://193.170.221.1:31337/stream.swf">
<embed src="http://193.170.221.1:31337/stream.swf" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" width="480" height="384">
</embed>
</object>
<!--
<object class="playerpreview" type="application/x-shockwave-flash" data="player.swf" width="480" height="384">
<param name="movie" value="player.swf" />
<param name="allowFullScreen" value="true" />
<param name="FlashVars" value="flv=http://193.170.221.1:31337/stream.flv&width=480&height=384&showstop=1&showvolume=1&showtime=1&showfullscreen=1&bgcolor=003d7e&bgcolor1=003d7e&bgcolor2=003d7e&autoplay=1" />
<p>Bitt Flash installieren.</p>
</object>
-->
</p>
</body></html>
Client
mplayer http://193.170.221.1:31337/stream.asf
Servervoraussetzungen
- openSUSE 11.1
- root, uS….
- Kartenname: Bt878
- Treiber bttv
- Soundkarte: Intel ICH6
dmesg | grep bttv => card=54 rmmod bt878 bttv
modprobe bttv card=54
- /etc/modprobe.d/tv_bttv
options bttv card=54
Video Kanäle
- 0 = Television
- 1 = Composite
- 2 = s-video
Port-Weiterleitung
- iptables.sh
#!/bin/bash iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F -t nat iptables -t nat -A PREROUTING -p tcp --dport 31337 -j DNAT --to 192.168.100.40:31337 iptables -t nat -A POSTROUTING -j MASQUERADE
Alter Gentoo-Server (2008)
- Gentoo 2009
- PW: TW…
- Wenn nötig X installieren : http://www.gentoo.org/doc/en/xorg-config.xml
- /etc/modules.autoload.d/kernel-2.6
bttv card=54
- ffmpeg installieren:
emerge ffmpeg
Port 8090 BindAddress 0.0.0.0 MaxHTTPConnections 1000 MaxClients 1000 MaxBandwidth 2000 CustomLog - NoDaemon ################################################################## <Feed feed1.ffm> File /tmp/feed1.ffm FileMaxSize 50M ACL allow 127.0.0.1 </Feed> ################################################################## # JPEG <Stream test.jpg> Feed feed1.ffm Format jpeg VideoFrameRate 2 VideoIntraOnly VideoSize 480x384 #NoAudio Strict -1 </Stream> #Flash <Stream stream.swf> Feed feed1.ffm VideoBitRate 256 VideoFrameRate 25 VideoBufferSize 80000 Format swf VideoFrameRate 25 VideoSize 480x384 VideoQMin 3 VideoQMax 5 VideoCodec flv #NoAudio PreRoll 0 </Stream> ################################################################## # Special streams # Server status <Stream stat.html> Format status # Only allow local people to get the status ACL allow localhost 192.168.100.0 #ACL allow 10.0.0.0 10.0.0.255 #ACL allow 0.0.0.0 #FaviconURL http://pond1.gladstonefamily.net:8080/favicon.ico </Stream> <Redirect index.html> URL http://www.ffmpeg.org/ </Redirect>
- ffserver starten
ffmpeg -y -v 9 -f video4linux2 -vc 2 -tvstd PAL -s 480x384 -r 25 -i /dev/video0 -vcodec flv http://localhost:8090/feed1.ffm
Stream speichern
- ffmpeg und Download müssen mehr oder weniger gleichzeitig gestartet werden:
- ffserver und ffmpeg ganz normal wie oben erwähnt ausführen
- In den Ordner wechseln, in den man den Stream speichern will
w3m http://localhost:8090/stat.html
- stream.swf mit ENTER auswählen, Download starten
Streaming mit ffmpeg (Ausgabe = Flash-Film = gute Qualität)
Port 31337 #8090 # bind to all IPs aliased or not BindAddress 0.0.0.0 # max number of simultaneous clients MaxClients 1000 # max bandwidth per-client (kb/s) MaxBandwidth 10000 # Suppress that if you want to launch ffserver as a daemon. NoDaemon <Feed feed1.ffm> File /tmp/feed1.ffm FileMaxSize 50M </Feed> <Stream stream.swf> Feed feed1.ffm Format swf VideoCodec flv VideoFrameRate 24 VideoBufferSize 80000 VideoBitRate 256 #VideoQMin 1 #VideoQMax 5 VideoSize 352x288 PreRoll 0 Noaudio </Stream>
- ffserver starten und laufen lassen
nb02:/etc # ffserver
- ffmpeg starten und laufen lassen
nb02:/etc # ffmpeg -r 24 -s 352x288 -f video4linux2 -i /dev/video0 http://localhost:31337/feed1.ffm
Streaming mit VLC (Ausgabe = Windows Media Stream = Schlechtere Qualität)
- vlc → Medien → Streaming → Aufnahmegerät öffnen (Einstellungen durchführen) → Stream →
- Outputs: Lokal wiedergeben, HTTP: ip-adresse PORT: 8080
- Profil: windows (wmv,asf)
- Stream (bzw. ALT+S)
- Anschauen etwa mit:
mplayer http://ip-adresse:8080
- oder im Internet in HTML eingebunden:
- stream.html
<html> <head><title>Live-Übertragung - Maturaball BG/BRG Weiz</title></head> <body> <object id="Player1" width="426" height="305" classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" type="application/x-mplaye r2"> <param name="url" value="http://localhost:8080" /> <param name="FileName" value="http://localhost:8080" /> <param name="ShowControls" value="1" /> <param name="ShowDisplay" value="0" /> <param name="ShowStatusBar" value="1" /> <param name="AutoSize" value="1" /> <param name="stretchToFit" value=0 /> <param name="AutoStart" value="1" /> <embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" src="http://localhost:8080" Name="NSPlayer1" ShowControls="1" ShowDisplay="0" ShowStatusBar="1" AutoSize="0" AutoStart="1" wi dth="426" height="305" /> </object> <a href="">Windows Media Player</a> bzw. <a href="">VLC</a> werden benötigt. </body> </html>
streaming-server.txt · Zuletzt geändert: von admin
