Crtmpserver
From Alessandro's Wiki
going "on-air"
- RTMP URL :
rtmp://[server address]/[application]/[streamName]
Mac/Win gui
- FMLE (Flash Media Live Encoder) http://www.adobe.com/products/flash-media-encoder.html
- Wirecast http://www.telestream.net/wire-cast/
Linux gui's
- unknown...
FFMPEG
-f mpegts udp://127.0.0.1:10000?pkt_size=1316 -f flv rtmp://127.0.0.1/live/myStream
ffmpeg -i /home/mediacluster/mediaroot/video/269_5.mp4 -re -vcodec flv -b:v 500k -s 320x200 -strict experimental -g 25 -me_method zero -acodec aac -ab 128k -ar 48000 -ac 2 -f flv "rtmp://127.0.0.1/live/video_stream1"
- FPS="15" # target FPS
- URL="rtmp://live.justin.tv/app/livestream" #flashver=FMLE/3.0\20(compatible;\20FMSc/1.0)"
ffmpeg -f x11grab -s 720x576 -r "$FPS" -i :0.0 -ab 96k \ -f alsa -ac 2 -i pulse -vcodec libx264 -crf 30 -preset fast -s "320x200" \ -acodec libmp3lame -ar 44100 -threads 0 \ -f flv "$URL"
ffmpeg -i /home/mediacluster/mediaroot/video/269_5.mp4 -acodec copy -vcodec copy -r 25 -re -f flv -metadata streamName="video_stream3" "tcp://localhost:6666"
ffmpeg -f video4linux2 -r 10 -s 640x360 -i /dev/video0 -f flv -metadata streamName="video_stream3" "tcp://localhost:6666" ffmpeg -f video4linux2 -r 10 -s 640x360 -i /dev/video1 -f flv -metadata streamName="video_stream4" "tcp://localhost:6666"
- ffmpeg
Capture from composite or S-video
ffmpeg -async 12 -vd /dev/video -ad /dev/dsp -f avi -r 25 -s 720x576 -croptop 8 -cropbottom 8 -cropleft 8 \ -cropright 8 -sameq -aspect 4:3 -acodec mp2 -ac 2 -ab 224k -ar 48000 -y -t 04:30:00 outfile.avi
ffmpeg -threads 2 -vd /dev/video$DEV -r 29.97 -b 800 -s 640x480 -vcodec h264 -qmax 51 \ -me epzs -deinterlace -g 300 -async 1 -ac 2 -acodec mp3 -ab 96 -ar 32000 \ -ad /dev/dsp$DEV -t $TIM -f avi -y $DIR/$FIL.avi
Mplayer/Mencoder
- socks=host:port
- app=name
- tcUrl=url
- pageUrl=url
- swfUrl=url
- flashVer=version
- conn=type:data
- Append arbitrary AMF data to the Connect message. The type must be B for Boolean, N for number, S for string, O for object, or Z for null. For Booleans the data must be either 0 or 1 for FALSE or TRUE, respectively. Likewise for Objects the data must be 0 or 1 to end or begin an object, respectively. Data items in subobjects may be named, by prefixing the type with 'N' and specifying the name before the value, e.g. NB:myFlag:1. This option may be used multiple times to construct arbitrary AMF sequences. E.g.
- conn=B:1 conn=S:authMe conn=O:1 conn=NN:code:1.23 conn=NS:flag:ok conn=O:0
- session
- playpath=path
- playlist=0|1
- live=0|1
Specify that the media is a live stream. No resuming or seeking in live streams is possible.
- subscribe=path
- start=num
- stop=num
- buffer=num
- timeout=num
mencoder -tv driver=v4l2:device=/dev/video$DEV:fps=30000/1001:chanlist=us-bcast:\ audiorate=32000:adevice=/dev/dsp$DEV:input=0:amode=1:normid=4:width=512:height=384 \ -ovc x264 -x264encopts threads=2:bitrate=800:subq=2:me=2:frameref=4:8x8dct \ -oac mp3lame -lameopts cbr:br=96 -endpos $TIM -o $DIR/$FIL.avi tv:// > /dev/null
VLC
vlc -vvv xxx.flv --sout '#transcode{vcodec=FLV1,acodec=mp3}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=localhost:1936/x/x}'
installation
Linux
* on CentOS: http://wiki.rtmpd.com/tutorial_full_centos_build
- I choose /opt/crtmpserver as source directory
svn co --username anonymous https://svn.rtmpd.com/crtmpserver/branches/1.0 crtmpserver
- do compile the source specifying the prefix you want, /usr/local is a good choice to keep the file-system under control, but remember to check the $PATH variable afterwards:
cd builders/cmake cmake -DCRTMPSERVER_INSTALL_PREFIX=/usr/local . make install
- now let's go in /usr/local/etc/ and use crtmpserver.lua.sample to generate your crtmpserver.lua changing the rootDirectory=" variable in applications= { /usr/local/lib/crtmpserver/applications
- install the certificates:
cp /usr/src/crtmpserver-690/builders/cmake/applications/appselector/server.* /usr/local/lib/crtmpserver/applications/appselector/
- link your own media directory (in this case I'm linking the Videos directory located in my home) to the player application media foder:
ln -s ~/Videos /usr/local/lib/crtmpserver/applications/flvplayback/mediaFolder cp /usr/src/crtmpserver-690/builders/cmake/applications/flvplayback/users.lua /usr/local/lib/crtmpserver/applications/flvplayback/
- it should be possible now to execute the compiled and configured program
configuration
- /opt/crtpmserver/configs
all.debug.lua flvplayback.lua run.bat run.sh users.lua
apps
- flash streamer application
/opt/crtpmserver/configs/flvplayback.lua
applications
- application files:
/usr/local/lib64/crtmpserver/applications/admin /usr/local/lib64/crtmpserver/applications/applestreamingclient /usr/local/lib64/crtmpserver/applications/appselector /usr/local/lib64/crtmpserver/applications/flvplayback /usr/local/lib64/crtmpserver/applications/proxypublish /usr/local/lib64/crtmpserver/applications/samplefactory /usr/local/lib64/crtmpserver/applications/stresstest /usr/local/lib64/crtmpserver/applications/vptests /usr/local/lib64/crtmpserver/applications/admin/libadmin.so /usr/local/lib64/crtmpserver/applications/applestreamingclient/libapplestreamingclient.so /usr/local/lib64/crtmpserver/applications/appselector/libappselector.so /usr/local/lib64/crtmpserver/applications/appselector/server.crt /usr/local/lib64/crtmpserver/applications/appselector/server.key /usr/local/lib64/crtmpserver/applications/flvplayback/libflvplayback.so /usr/local/lib64/crtmpserver/applications/flvplayback/mediaFolder /usr/local/lib64/crtmpserver/applications/flvplayback/users.lua /usr/local/lib64/crtmpserver/applications/proxypublish/libproxypublish.so /usr/local/lib64/crtmpserver/applications/samplefactory/libsamplefactory.so /usr/local/lib64/crtmpserver/applications/stresstest/libstresstest.so /usr/local/lib64/crtmpserver/applications/vptests/libvptests.so
references
- installing on Gentoo
http://foxpa.ws/2011/10/26/installing-c-rtmp-server-rtmpd-crtmpdserver-on-gentoo/
- using it
http://wiki.rtmpd.com/tutorial_live_stream_file
- documentation