In diesen Beitrag wird erklärt wie man mit einer Webcam und der Software FFmpeg & FFserver einen Audio und Video Livestream erstellt.
Ich habe dafür benutzt:
1x Logitech QuickCam für Notebooks
1x Ubuntu Netbook (Ubuntu 8.04 Hard Heron)
1x Ubuntu Server (Ubuntu 8.04 Hard Heron)
Für den Heimgebrauch kann der Stream auch vom selben Rechner aufgezeichnet und gesendet werden.
Installation:
1) Als erstes installieren wir auf beiden Rechnern das FFmpeg packet.
sudo apt-get install ffmpeg |
2) Falls noch nicht vorhanden brauch der Rechner welcher den Stream aufzeichnen soll den LAME Encoder
sudo apt-get install lame |
3) Configuration vom FFserver.
Jetzt müssen auf den Rechner welcher den Stream ins Internet Senden soll die Konfigurationsdatei bearbeiten.
Bevor wir die Konfiguration bearbeiten machen wir ein Backup:
sudo mv /etc/ffserver.conf /etc/ffserver.conf_backup |
Bei einen Rechner mit grafischer Oberfläche bearbeiten wir die Datei mit:
sudo gedit /etc/ffserver.conf |
Bei einem Rechner welcher nur über Terminal bedient wird mit:
sudo vim /etc/ffserver.conf |
Jetzt können wir den gesamten Inhalt der Konfigurationsdatei löschen und durch das ersetzen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Port 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 5M </feed> <stream test.swf> Feed feed1.ffm Format swf VideoCodec flv VideoFrameRate 2 VideoBufferSize 80000 VideoBitRate 100 VideoQMin 1 VideoQMax 5 VideoSize 352x288 PreRoll 0 #Noaudio AudioCodec mp3 AudioBitRate 32 AudioChannels 1 AudioSampleRate 44100 </stream> |
Jetzt nur noch speichern und den Server starten
ffserver |
4) Mit FFmpeg den Stream an den Streamingserver senden.
ffmpeg -s 352×288 -f video4linux -i /dev/video1 -f audio_device -i /
dev/dsp1 http://<ip vom server>:8090/feed1.ffm
hierbei ist /dev/video1 die Webcam. Bei Rechnern ohne eingebaute Webcam wird das wahrscheinlich /dev/video0 sein.
/dev/dsp1 ist in meinen fall das Mikrofon der Webcam.
Jetzt nur noch die IP vom Streamserver eintragen und schon sollte das ganze laufen.
Den Stream erreicht man jetzt unter: http://<ip vom server>:8090/test.swf
Gibt es auch die Möglichkeit H.264 Videos mit ffserver in Flash-Player livestreamen zu lassen?
MF Sen
07/16/2009 @ 15:14
Hi Sen, Ja das sollte auch funktionieren. Du musst als quelle anstelle vom Device die H.264 Videodatei angeben.
07/18/2009 @ 14:20
Moin,
dein beispiel funktioniert so nicht, da die Paketversionen kein mp3 unterstützen, das kann man ihnen beibringen (lame ftw.), aber nur wenn man ffmpeg dann selbst kompiliert
(zumindest bei mir nicht)
MfG
dispy
07/20/2009 @ 00:10
Hi dispy,
MP3 Sollte funktionieren wenn lame da ist. Notfalls kannst du ja noch probieren ein Codec Bundle zu installieren bei mir war es bei 2 Rechnern unterschiedlich mal brauchte ich es mal nicht. Übrigens funktioniert das ganze scheinbar nur mit der für Ubuntu 8.04 verfügbaren Version von FFmpeg bei neueren Ubuntu Distributionen scheint es sich um eine neuere FFmpeg Version zu handeln die andere und mehr Parameter erwartet.
07/20/2009 @ 09:58
Bei den neueren Versionen von Ubuntu und FFmpeg einfach den Audiocodec von „mp3“ zu „libmp3lame“ ändern. Lame natürlich vorausgesetzt…
Zitat:
Q: I get “Unknown AudioCodec: mp3″ error when starting ffserver.
A: You’ve got an mp3 stream configured in your ffservcer.conf but your ffmpeg/ffserver version has changed names for mp3. Try setting AudioCodec to “libmp3lame”.
MfG multimediatechniker
12/08/2009 @ 15:49
Hi,
I am getting the data on the fly in the form of RGB888 format from LAN. I want to stream this encode and stream this data. Is this possible ?
10/04/2011 @ 12:18
moin …
ich habe eine „Creative LIVE CAM CHAT HD“
wenn ich das nach deinen angaben mache … scalliert er das bild IMMER auf 160 x 120 auch wenn in der ffserver.conf was gant anderes steht …
hast du ggf. eine Idee ?
LG
Marco
12/14/2012 @ 14:20