Hello!
First of all I'd like to thank you for good job! The server works "out
of the box" in case of flv-files' streaming.
I have the dataflow "ffmpeg -> crtmpserver -> ffplay" that is
configured as follows:
1) Launch crtmpserver using original crtmpserver.lua configuration
file (which was in tarball crtmpserver-717.tar.gz).
2) Launch ffmpeg:
ffmpeg -re -an -i <input file> -f flv -an -metadata
streamName="test" tcp://localhost:6666
As a result, ffmpeg starts to encode and to send video.
crtmpserver' output by the moment is in Listing 1 (in the end of
this letter).
Everything seems to be ok by the moment.
3) ffplay's command: ffplay -an rtmp://
127.0.0.1/flvplayback/test
ffplay exits with the following error right away:
HandShake: client signature does not match!
rtmp server sent error
WriteN, RTMP send error 32 (42 bytes)
RTMP_ReadPacket, failed to read RTMP packet header
rtmp://
127.0.0.1/flvplayback/test: Operation not permitted
crtmpserver outputs the following errors:
.../crtmpserver-717/sources/thelib/src/protocols/rtmp/streaming/
infilertmpstream.cpp:262 File not found. fullPath:
``
.../crtmpserver-717/sources/thelib/src/protocols/rtmp/
basertmpprotocol.cpp:505 Unable to get file stream.
Metadata:
<MAP name=""
isArray="false">
<INT32 name="clientSideBuffer">12</
INT32>
<BOOL name="externSeekGenerator">false</
BOOL>
<STR name="fileName">test.flv</
STR>
<STR name="fullPath"></
STR>
<BOOL name="keyframeSeek">true</
BOOL>
<STR name="mediaDir">/home/windj/projects/gtss/motion/</
STR>
<BOOL name="renameBadFiles">false</
BOOL>
<STR name="requestedStreamName">test</
STR>
<MAP name="rtmpMeta"
isArray="false">
<STR name="Server">C++ RTMP Server (
http://www.rtmpd.com)</
STR>
</
MAP>
<UINT32 name="seekGranularity">1000</
UINT32>
<STR name="streamType">flv</
STR>
</
MAP>
.../crtmpserver-717/sources/thelib/src/protocols/rtmp/
basertmpappprotocolhandler.cpp:1966 No file streams found:
test
.../crtmpserver-717/sources/thelib/src/protocols/rtmp/
basertmpprotocol.cpp:799 Unable to send rtmp message to
application
.../crtmpserver-717/sources/thelib/src/netio/epoll/tcpcarrier.cpp:
88 Unable to signal data available
What's the matter?
CRTMPServer seems to receive video from ffmpeg correctly (the stream
named 'test' was registered to application 'flvplayback')...
Thank you!
***********
Listing 1 - crtmpserver's log just after ffmpeg launch:
.../crtmpserver-717/sources/thelib/src/netio/epoll/tcpacceptor.cpp:154
Client connected:
127.0.0.1:49654 ->
0.0.0.0:6666
.../crtmpserver-717/sources/thelib/src/protocols/liveflv/
inboundliveflvprotocol.cpp:46
parameters:
<MAP name=""
isArray="false">
<STR name="ip">0.0.0.0</
STR>
<UINT16 name="port">6666</
UINT16>
<STR name="protocol">inboundLiveFlv</
STR>
<STR name="sslCert"></
STR>
<STR name="sslKey"></
STR>
<BOOL name="waitForMetadata">true</
BOOL>
</
MAP>
.../crtmpserver-717/sources/thelib/src/protocols/liveflv/
inboundliveflvprotocol.cpp:51 _waitForMetadata:
1
.../crtmpserver-717/sources/thelib/src/netio/epoll/
iohandlermanager.cpp:100 Handlers count changed: 12->13
IOHT_TCP_CARRIER
.../crtmpserver-717/sources/thelib/src/protocols/liveflv/
baseliveflvappprotocolhandler.cpp:45 protocol CTCP(17) <-> TCP(4) <->
[ILFL(5)] registered to app
flvplayback
.../crtmpserver-717/sources/thelib/src/application/
baseclientapplication.cpp:227 Stream INLFLV(1) with name `test`
registered to application `flvplayback` from protocol
ILFL(5)
.../crtmpserver-717/sources/thelib/src/protocols/liveflv/
inboundliveflvprotocol.cpp:184 Stream
metadata:
<MAP name=""
isArray="true">
<MAP name="__index__value__0"
isArray="true">
<DOUBLE name="duration">0.000</
DOUBLE>
<STR name="encoder">Lavf54.1.100</
STR>
<DOUBLE name="filesize">0.000</
DOUBLE>
<DOUBLE name="framerate">25.000</
DOUBLE>
<DOUBLE name="height">240.000</
DOUBLE>
<STR name="streamName">test</
STR>
<DOUBLE name="videocodecid">2.000</
DOUBLE>
<DOUBLE name="videodatarate">195.312</
DOUBLE>
<DOUBLE name="width">320.000</
DOUBLE>
</
MAP>
</MAP>