Error HandShake: client signature does not match! when publishing RTMP stream

1,129 views
Skip to first unread message

SyRenity

unread,
Oct 7, 2011, 11:22:52 AM10/7/11
to c-rtmp...@googlegroups.com
Hi.

After I figured out my ffmpeg build lacked librtmp linked (and used built-in rtmp muxer which apparently not compatible with rtmpd), I've added librtmp and tried pushing RTMP again.

Now I get the following error on client:
HandShake: client signature does not match!
RTMP_ReadPacket, failed to read RTMP packet header
rtmp://127.0.0.1/live: Operation not permitted

And on server:
/home/dev/crtmpserver/sources/thelib/src/netio/epoll/tcpacceptor.cpp:154 Client connected: 127.0.0.1:54102 -> 0.0.0.0:1935
/home/dev/crtmpserver/sources/thelib/src/netio/epoll/iohandlermanager.cpp:100 Handlers count changed: 11->12 IOHT_TCP_CARRIER
/home/dev/crtmpserver/sources/thelib/src/protocols/rtmp/inboundrtmpprotocol.cpp:123 This version of player doesn't support validation
/home/dev/crtmpserver/sources/applications/appselector/src/rtmpappprotocolhandler.cpp:83 Selected application: flvplayback (live)
/home/dev/crtmpserver/sources/thelib/src/application/baseclientapplication.cpp:216 Protocol CTCP(15) <-> TCP(2) <-> [IR(3)] unregistered from application: appselector
/home/dev/crtmpserver/sources/thelib/src/protocols/rtmp/basertmpappprotocolhandler.cpp:1506 Incorrect user agent
/home/dev/crtmpserver/sources/thelib/src/application/baseclientapplication.cpp:227 Stream NR(1) with name `` registered to application `flvplayback` from protocol IR(3)
/home/dev/crtmpserver/sources/thelib/src/protocols/rtmp/basertmpappprotocolhandler.cpp:1239 Default implementation of ProcessInvokeGeneric: Request: _checkbw
/home/dev/crtmpserver/sources/thelib/src/netio/epoll/tcpcarrier.cpp:78 Unable to read data. 127.0.0.1:54102 -> 127.0.0.1:1935
/home/dev/crtmpserver/sources/thelib/src/netio/epoll/iohandlermanager.cpp:109 Handlers count changed: 12->11 IOHT_TCP_CARRIER
/home/dev/crtmpserver/sources/thelib/src/protocols/protocolmanager.cpp:44 Enqueue for delete for protocol [IR(3)]
/home/dev/crtmpserver/sources/thelib/src/application/baseclientapplication.cpp:238 Stream NR(1) with name `` unregistered from application `flvplayback` from protocol IR(3)
/home/dev/crtmpserver/sources/thelib/src/application/baseclientapplication.cpp:216 Protocol [IR(3)] unregistered from application: flvplayback


I've tried both this way of streaming:
ffmpeg -i testfile.mp4 -vcodec libx264 -acodec libfaac -f flv rtmp://127.0.0.1/live
and this way:
ffmpeg -i testfile.mp4 -vcodec libx264 -acodec libfaac -f flv -metadata streamName="test" tcp://127.0.0.1:6665

I've also tried setting validateHandshake to false in config file - changing the active params doesn't change anything, and if I un-comment the commented params, it breaks the config.
I'm using the latest SVN 669 version.

Any idea how to sort this out?

Thanks!

SyRenity

unread,
Oct 8, 2011, 1:23:03 AM10/8/11
to c-rtmp...@googlegroups.com
Anyone can comment on above?

I'd really like to finally give rtmpd a spin, now that FFmpeg issues sorted out.

Regards.

SyRenity

unread,
Oct 8, 2011, 5:43:37 AM10/8/11
to c-rtmp...@googlegroups.com
Ok, this command actually does work:
ffmpeg -i testfile.mp4 -vcodec libx264 -acodec libfaac -f flv -metadata streamName="test" tcp://127.0.0.1:6666

Any idea what is the difference from using port 6665? Also, how to make the standard ftmp:// command to pass handshake?

By the way, is there anyone vising the IRC at irc.oftc.net #crtmpserver? I spent there sometime and haven't seen anyone except me.

Thanks.

SyRenity

unread,
Oct 8, 2011, 7:53:51 AM10/8/11
to c-rtmp...@googlegroups.com
Ok, finally figured that out :).

Seems that using SVN version does not pay, once I used the last download (575) config it worked fine.

Two questions:

1) How the SVN version compares in stability to download, and which is one preferred to use in production?

2) On which end the handShake fails, the FFMPEG or RMTPD? Is there any downside to having the handshake disabled?

Thanks.

C++ RTMP Server

unread,
Oct 8, 2011, 7:55:45 AM10/8/11
to c-rtmp...@googlegroups.com

On Oct 8, 2011, at 12:43 PM, SyRenity wrote:

> Ok, this command actually does work:
> ffmpeg -i testfile.mp4 -vcodec libx264 -acodec libfaac -f flv -metadata streamName="test" tcp://127.0.0.1:6666
>
> Any idea what is the difference from using port 6665?

Since liveFLV is tcp, is bound to one and only app at startup time. 6666 is on flvplayback application while 6665 is on proxypublish

> Also, how to make the standard ftmp:// command to pass handshake?

I have no idea how to fix the ffmpeg/rtmpdump/vlc/etc. All you can do is disable the handshake in the config file on crtmpserver's side. This is pretty much it


>
> By the way, is there anyone vising the IRC at irc.oftc.net #crtmpserver? I spent there sometime and haven't seen anyone except me.
>
> Thanks.
>

> You received this message because you are subscribed to "C++ RTMP Server" mailing list.
> To post to this group, send email to c-rtmp...@googlegroups.com
> To unsubscribe from this group, send email to
> c-rtmp-serve...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/c-rtmp-server?hl=en

SyRenity

unread,
Oct 8, 2011, 9:06:44 AM10/8/11
to c-rtmp...@googlegroups.com
Thanks, I already understood it from reading the download configuration file.

The strangest thing is, that even if I don't disable the validation in download config file, the streaming works from FFMPEG, complaining that "HandShake: client signature does not match!" but still going on.

On another hand, if I don't disable it in SVN config, it doesn't continue.

This on same binary. Any idea why?

Regards.
Reply all
Reply to author
Forward
0 new messages