Difference between revisions of "Streaming webcam"

From HoerupWiki
Jump to: navigation, search
(Created page with "Stream af webcam med ffmpeg+ffserver til webpage. ==Introduktion== Opsættet er simpelt, man har et webcam på en lokation som skal streames til en hjemmeside hvor der potent...")
 
(Opsæt)
Line 10: Line 10:
 
==Opsæt==
 
==Opsæt==
 
Lokalt : webcam + pc med ffmpeg, internetlinje med nok upload til en enkelt stream.
 
Lokalt : webcam + pc med ffmpeg, internetlinje med nok upload til en enkelt stream.
 +
 
Server : ffserver, internetlinje stor nok til den indkommende stream + alle seere.
 
Server : ffserver, internetlinje stor nok til den indkommende stream + alle seere.
 +
 
Web : Hjemmesiden skal simpelt bare embedde en flashplayer som bliver leveret af serveren.
 
Web : Hjemmesiden skal simpelt bare embedde en flashplayer som bliver leveret af serveren.
 +
 +
 +
==FFserver==
 +
Vi starter lige med ffserver, her er min testconfig med en 800kb stream, 15 fps i 640x480, uden lyd.
 +
Bemærk at ACL skal tillade IP fra webcam-computeren.
 +
 +
<Feed feed1.ffm>
 +
  # ffmpeg http://localhost:8090/feed1.ffm
 +
  File /tmp/feed1.ffm
 +
  FileMaxSize 5M
 +
  ACL allow 127.0.0.1
 +
  ACL allow 192.168.8.0 192.168.255.255
 +
</Feed>
 +
 +
<Stream test.swf>
 +
  Feed feed1.ffm
 +
  Format swf
 +
  VideoCodec flv
 +
  VideoFrameRate 15
 +
  VideoBufferSize 80000
 +
  VideoBitRate 800
 +
  VideoQMin 1
 +
  VideoQMax 5
 +
  VideoSize 640x480
 +
  PreRoll 0
 +
  Noaudio
 +
</Stream>
 +
 +
==FFmpeg==
 +
I mit opsæt har jeg et netværkskamera (Axis overvågningskamera)
 +
 +
Feed:
 +
ffmpeg -ar 48000 -ac 2 -f s16le -i /dev/zero -i "rtsp://192.168.8.xx:554/mpeg4/media.amp" -r 15 http://localhost:8090/feed1.ffm
 +
 +
Vigtigt at force frameraten på input her, ellers spammer den soruce, det er både usb-kamera og netværks kamera. ''-ar 48000 -ac 2 -f s16le -i /dev/zero'' laver et null-audio input, bemærk at mange mp4 og flv formater KRÆVER en lydkanal, også selvom der kun er stilhed.

Revision as of 12:23, 2 October 2015

Stream af webcam med ffmpeg+ffserver til webpage.

Introduktion

Opsættet er simpelt, man har et webcam på en lokation som skal streames til en hjemmeside hvor der potentionelt kan være rigtig mange ssere uden at det skal tvinge den lokale internetlinje i knæ, eller blotlægge den lokale IP adresse.

Derfor streamer man en enkelt stream lokalt op til en server, som så kan levere flere streams til de besøgende.

ffserver kan håndtere flere streams, enten flere kamera eller samme kamera i fx. flere kvaliteter.

Opsæt

Lokalt : webcam + pc med ffmpeg, internetlinje med nok upload til en enkelt stream.

Server : ffserver, internetlinje stor nok til den indkommende stream + alle seere.

Web : Hjemmesiden skal simpelt bare embedde en flashplayer som bliver leveret af serveren.


FFserver

Vi starter lige med ffserver, her er min testconfig med en 800kb stream, 15 fps i 640x480, uden lyd. Bemærk at ACL skal tillade IP fra webcam-computeren.

<Feed feed1.ffm>
  # ffmpeg http://localhost:8090/feed1.ffm
  File /tmp/feed1.ffm
  FileMaxSize 5M
  ACL allow 127.0.0.1
  ACL allow 192.168.8.0 192.168.255.255
</Feed>
<Stream test.swf>
  Feed feed1.ffm
  Format swf
  VideoCodec flv
  VideoFrameRate 15
  VideoBufferSize 80000
  VideoBitRate 800
  VideoQMin 1
  VideoQMax 5
  VideoSize 640x480
  PreRoll 0
  Noaudio
</Stream>

FFmpeg

I mit opsæt har jeg et netværkskamera (Axis overvågningskamera)

Feed:

ffmpeg -ar 48000 -ac 2 -f s16le -i /dev/zero -i "rtsp://192.168.8.xx:554/mpeg4/media.amp" -r 15 http://localhost:8090/feed1.ffm

Vigtigt at force frameraten på input her, ellers spammer den soruce, det er både usb-kamera og netværks kamera. -ar 48000 -ac 2 -f s16le -i /dev/zero laver et null-audio input, bemærk at mange mp4 og flv formater KRÆVER en lydkanal, også selvom der kun er stilhed.