内容へ移動
[[
✎ web:flash:rtmp:example-1
]]
doku@ainoniwa
文書の表示
最近の変更
サイトマップ
ログイン
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== RTMPストリーミング実装例1 ====== * 動作環境 * Ubuntu 10.04 server * apache2:2.2.14-5ubuntu8.4 * 採用ソフトウェア(インストール方法は省略) * crtmpserver * ffmpeg * "-metadata" の設定が出来ないと、ストリーミング対象になる名前がわからないから自前コンパイル推奨。 * flowplayer * 実践 - crtmpserverの起動 * <code>cd ~/crtmpserver/builders/cmake && ./crtmpserver/crtmpserver --daemon ./crtmpserver/crtmpserver.lua</code> * 割とこうなる。 * <code>+-----------------------------------------------------------------------------+ | Services| +---+---------------+-----+-------------------------+-------------------------+ | c | ip | port| protocol stack name | application name | +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 1935| inboundRtmp| appselector| +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 8081| inboundRtmps| appselector| +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 8080| inboundRtmpt| appselector| +---+---------------+-----+-------------------------+-------------------------+ |udp| 0.0.0.0| 1935| inboundRtmfp| flvplayback| +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 6666| inboundLiveFlv| flvplayback| +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 9999| inboundTcpTs| flvplayback| +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 8989| inboundHTTPDBAccess| samplefactory| +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 1111| inboundHttpXmlVariant| vptests| +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 1112| inboundJsonCli| admin| +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 6665| inboundLiveFlv| proxypublish| +---+---------------+-----+-------------------------+-------------------------+ |tcp| 0.0.0.0| 6544| inboundTcpTs| vmapp| +---+---------------+-----+-------------------------+-------------------------+ /home/flv/crtmpserver/sources/crtmpserver/src/crtmpserver.cpp:231 GO! GO! GO! (27274)</code> - ffmpegから、crtmpserverに向けてTCPで動画ストリームを出力 * <code>/usr/local/bin/ffmpeg -i mov000448.mp4.mp4 -re -r 15 -acodec copy -g 10 -vcodec libx264 -s 854x480 -metadata duration=24.00 -metadata streamName=flowplayer-stream -f flv tcp://127.0.0.1:6666?pkt_size=1400</code> * crtmpserverの出力例 * <code>/root/crtmpserver/sources/thelib/src/netio/epoll/tcpacceptor.cpp:133 Client connected: 127.0.0.1:47104 -> 0.0.0.0:6666 /root/crtmpserver/sources/thelib/src/protocols/liveflv/inboundliveflvprotocol.cpp:46 parameters: <MAP name="" isArray="false"> <STR name="ip">0.0.0.0</STR> <INT16 name="port">6666</INT16> <STR name="protocol">inboundLiveFlv</STR> <NULL name="sslCert"></NULL> <NULL name="sslKey"></NULL> <BOOL name="waitForMetadata">true</BOOL> </MAP> /root/crtmpserver/sources/thelib/src/protocols/liveflv/inboundliveflvprotocol.cpp:51 _waitForMetadata: 1 /root/crtmpserver/sources/thelib/src/netio/epoll/iohandlermanager.cpp:98 Handlers count changed: 11->12 IOHT_TCP_CARRIER /root/crtmpserver/sources/thelib/src/protocols/liveflv/baseliveflvappprotocolhandler.cpp:45 protocol CTCP(16) <-> TCP(3) <-> [ILFL(4)] registered to app flvplayback /root/crtmpserver/sources/thelib/src/protocols/liveflv/inboundliveflvprotocol.cpp:230 Stream name: flowplayer-stream /root/crtmpserver/sources/thelib/src/application/baseclientapplication.cpp:156 Stream 1 of type INLFLV with name `flowplayer-stream` registered to application `flvplayback` /root/crtmpserver/sources/thelib/src/streaming/streamsmanager.cpp:91 short name: flowplayer-stream; long name: flowplayer-stream /root/crtmpserver/sources/thelib/src/streaming/streamsmanager.cpp:100 short count: 0; long count: 0 /root/crtmpserver/sources/thelib/src/protocols/liveflv/inboundliveflvprotocol.cpp:239 subscribedOutStreams count: 0 /root/crtmpserver/sources/thelib/src/protocols/liveflv/inboundliveflvprotocol.cpp:184 Stream metadata: <MAP name="" isArray="true"> <MAP name="__index__value__0" isArray="true"> <DOUBLE name="audiocodecid">10.000</DOUBLE> <DOUBLE name="audiodatarate">149.771</DOUBLE> <DOUBLE name="audiosamplerate">48000.000</DOUBLE> <DOUBLE name="audiosamplesize">16.000</DOUBLE> <STR name="compatible_brands">isommp423gp5</STR> <STR name="creation_time">2011-07-05 06:49:44</STR> <STR name="duration">24.00</STR> <STR name="encoder">Lavf53.0.3</STR> <DOUBLE name="filesize">0.000</DOUBLE> <DOUBLE name="framerate">15.000</DOUBLE> <DOUBLE name="height">480.000</DOUBLE> <STR name="major_brand">mp42</STR> <STR name="minor_version">1</STR> <BOOL name="stereo">true</BOOL> <STR name="streamName">flowplayer-stream</STR> <DOUBLE name="videocodecid">7.000</DOUBLE> <DOUBLE name="videodatarate">195.312</DOUBLE> <DOUBLE name="width">854.000</DOUBLE> </MAP> </MAP></code> - 最後に、RTMPを見るように設定したHTMLファイルを作ってアクセスする。 * HTMLコード * <code>
文書の表示
以前のリビジョン
メディアマネージャー
文書の先頭へ