I have found a very hack-ish way to make VLC transcode a stream from an Axis camera. You need two instances of VLC and a named pipe. Here’s what worked for me, step-by-step:
Make a named pipe:
mkpipe /tmp/vpipe
Then capture the stream and save it to the pipe:
vlc -vvv rtsp://CAMERA-IP-ADDRESS:554/mpeg4/media.amp --no-drop-late-frames --no-sout-audio --sout "#std{mux=ts,access=file,dst=/tmp/vpipe}"
And finally read from the pipe, transcode, and stream to the flash server:
vlc -vvv /tmp/vpipe --no-sout-audio --sout "#transcode{venc=x264,vcodec=x264,vb=500,scale=1}:rtp{dst=SERVER-IP-ADDRESS,sdp=file:///path/to/wowza/content/myStream.sdp}"
The only thing is it takes a whole lot of processing power, and there are a lot of parts, so therefore a lot of potential for things to mess up. Also, I don’t really trust VLC to not crash.
It is also sort of possible to use Darwin Streaming Server instead of the first VLC instance, and not use a named pipe, but sometimes VLC dies when doing that.
I have both VLC and Wowza running on the same server. I posted a fuller explanation of how I arrived at this solution on my blog.
I did a lot of testing on a Mac, but I got the final solution running on a webserver running Fedora Core 6.