ffmpeg+crtmpserver

来源:互联网 发布:网络钮祜禄是什么梗 编辑:程序博客网 时间:2024/05/16 09:13

1. download crtmpserver source code

svn co --username anonymous --password "" https://svn.rtmpd.com/crtmpserver/trunk crtmpserver

2. install cmake 

3. install openssl dev library

apt-get install openssl libssl-dev

4. install lua

download lua

compile and install

5. install tinyxml

apt-get install libtinyxml-dev

6. compile and install crtmpserver

compile script below


6.1 script 1, modify run script file.

#!/bin/bash

if [ $# != 2 ]; then
  echo "Usage: $0 <mod_name> <rtmpd_prefix>"
  exit 1
fi

 

#$1=rtmpd/builders/cmake

 

cd $1
rtmpd_prefix=$2

sed -i -e '/COMPILE_STATIC=/c\COMPILE_STATIC=1 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc -DCRTMPSERVER_INSTALL_PREFIX='''${rtmpd_prefix}''' .' run

sed -i '/killall/d' run
sed -i '/crtmpserver/d' run
sed -i '/make install/d' run
sed -i '$a make install' run
~
 

the run script is as the followings after modified.

rm -rf ../../media/*.seek
rm -rf ../../media/*.meta
#./renamebadfiles.sh

COMPILE_STATIC=1 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc -DCRTMPSERVER_INSTALL_PREFIX=/usr/local/stream .

if [ "$?" -ne "0" ]; then
        exit 1;
fi

make

if [ "$?" -ne "0" ]; then
        echo "build failed";
        exit 1;
fi

make install

 

6.2 make by run

cd rtmpd/builders/cmake

./run

 


7. stream to crtmpserver

ffmpeg -f mpegts -i film.v -an -c:v libx264 -s 352x288 -aspect 4:3 -b:a 100k -b:v 200k -f flv 'rtmp://127.0.0.1:1935/flvplayback/live'

ffmpeg -f mpegts -i film.v -c:a libfaac -ac 1 -c:v libx264 -s 352x288 -aspect 4:3 -b:a 100k -b:v 200k -f flv 'rtmp://127.0.0.1:1935/flvplayback/live'


8. stream from crtmpserver

ffmpeg -i 'rtmp://192.168.0.158/flvplayback/live  live=1' -an -c:v rawvideo -s 352x288 -f rawvideo rtmp.yuv


reference:


http://wiki.rtmpd.com/documentation

http://blog.chinaunix.net/uid-26000296-id-3085921.html

http://www.verydemo.com/demo_c104_i4133.html


Notes:  remember add --enable-librtmp option when compile ffmpeg