**以前のリビジョンの文書です**

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 IOHTTCPCARRIER /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=“indexvalue0” 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=“compatiblebrands”

>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>
ソースの表示以前のリビジョン
メディアマネージャー文書の先頭へ
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0