How to convert RTSP stream into flv/swf Stream (w. ffmpeg)?

acy picture acy · Jan 18, 2011 · Viewed 10.6k times · Source

I want embed a webcam stream (From geovision video server) into a website. Unfortunately only the rtsp stream gives direct access to the video data.

I tried a bunch of different variants. With this version I got no errors:

openRTSP -b 50000 -w 352 -h 288 -f 5 -v -c -u admin password rtsp://xxxxxx.dyndns.org:8554/CH001.sdp | \
ffmpeg -r 5 -b 256000 -f mp4 -i - http://127.0.0.1:8090/feed1.ffm

Unfortunately I get no video. Sometimes I see a single frame of the webcam, but no livestream.

This is my ffserver.conf

Port 8090
BindAddress 0.0.0.0
MaxClients 200
MaxBandwidth 20000
CustomLog /var/log/flvserver/access.log

NoDaemon

# Server Status
<Stream stat.html>
Format status
</Stream>

<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 200K
ACL allow 127.0.0.1
</Feed>

# SWF output - great for testing
<Stream test.swf>
 # the source feed
 Feed feed1.ffm
 # the output stream format - SWF = flash
 Format swf
 #VideoCodec flv
 # this must match the ffmpeg -r argument
 VideoFrameRate 5
 # another quality tweak
 VideoBitRate 256K
 # quality ranges - 1-31 (1 = best, 31 = worst)
 VideoQMin 1
 VideoQMax 3
 VideoSize 352x288
 # wecams don't have audio
 NoAudio
</Stream>

What am I doing wrong? THe test.swf seems to load forever...

Answer

Manu picture Manu · Feb 28, 2011

Tried something like this with vlc and it worked for me...

vlc.exe -I http -vv camURL :sout=#transcode{vcodec=h264,vb=0,scale=0,acodec=mp4a,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=addr:availablePort}

camurl is the url of the camera....

addr is the address where you want the httpstream to be sent to...

availablePort is the port where you want the httpstream to be sent to