我目前正在使用C ++实现一个简单的RTMP服务器,我已经阅读了Adobe RTMP规范。我发现规范编写得不是很好,留下了很多未提及的实现细节。
我还使用WireShark和crtmpserver来检查客户端/服务器发送/接收的数据包,我发现很难确定服务器应该响应来自客户端的“play”命令。
Adobe的Spec仅使用4个TEXT页来解释'play'命令,并且服务器部分描述绝对不清楚,因为我监视了使用WireShark和crtmpserver时发送的大量数据包。
感谢。彼得
答案 0 :(得分:0)
我假设您按照http://wiki.rtmpd.com/documentation
中的说明进行操作您可以通过编辑crtmpserver.lua
来拉或推流例如,要拉出一个流,在externalStreams下添加块
{
uri="rtmp://<address of external server>",
localStreamName="mytest",
forceTcp=true, --if true=TCP false=UDP
keepAlive=true, --if stream will continuously playback again when it ends
},
然后将流推送到另一台服务器,在targetServers下,添加块
{
targetUri="rtmp://<ip/folder of target server>",
targetStreamType="live", -- (live, record or append)
targetStreamName="mytest",
localStreamName="local",
keepAlive=true,
},
您还可以通过订阅www.evostream.com获取更多信息