crtmpserver svn.717 记录

1 篇文章 0 订阅
1 篇文章 0 订阅

crtmpserver svn.717 的一些记录,操作系统为win 7 64bit。

下载后打开vs2010工程,把crtmpserver设为启动项目(默认启动项目是common),编译crtmpserver工程,出现错误:

3>e:\project\crtmpserver-717\sources\thelib\src\protocols\liveflv\innetliveflvstream.cpp(111): error C2593: “operator =”不明确
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(149): 可能是“Variant &Variant::operator =(const char *)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(145): 或       “Variant &Variant::operator =(const double &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(144): 或       “Variant &Variant::operator =(const uint64_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(143): 或       “Variant &Variant::operator =(const uint32_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(142): 或       “Variant &Variant::operator =(const uint16_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(141): 或       “Variant &Variant::operator =(const uint8_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(140): 或       “Variant &Variant::operator =(const int64_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(139): 或       “Variant &Variant::operator =(const int32_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(138): 或       “Variant &Variant::operator =(const int16_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(137): 或       “Variant &Variant::operator =(const int8_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(136): 或       “Variant &Variant::operator =(const bool &)”
3>          尝试匹配参数列表“(Variant, int)”时
3>e:\project\crtmpserver-717\sources\thelib\src\protocols\liveflv\innetliveflvstream.cpp(114): error C2593: “operator =”不明确
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(149): 可能是“Variant &Variant::operator =(const char *)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(145): 或       “Variant &Variant::operator =(const double &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(144): 或       “Variant &Variant::operator =(const uint64_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(143): 或       “Variant &Variant::operator =(const uint32_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(142): 或       “Variant &Variant::operator =(const uint16_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(141): 或       “Variant &Variant::operator =(const uint8_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(140): 或       “Variant &Variant::operator =(const int64_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(139): 或       “Variant &Variant::operator =(const int32_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(138): 或       “Variant &Variant::operator =(const int16_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(137): 或       “Variant &Variant::operator =(const int8_t &)”
3>          e:\project\crtmpserver-717\sources\common\include\utils\misc\variant.h(136): 或       “Variant &Variant::operator =(const bool &)”
3>          尝试匹配参数列表“(Variant, int)”时

去crtmpserver  google group查了下发现【 这里】提到解决方法,其实就是

sources/thelib/src/protocols/liveflv/innetliveflvstream.cpp 

And replace line 111 with: 

info["audio"]["droppedPacketsCount"] = (uint64_t)0; 

And line 114 with: 

info["video"]["droppedPacketsCount"] = (uint64_t)0; 

再次编译,出现另外的问题

defaultprotocolfactory.obj : error LNK2019: riferimento al simbolo esterno 
"public: __thiscall NATTraversalProtocol::NATTraversalProtocol(void)" 
(??0NATTraversalProtocol@@QAE@XZ) non risolto nella funzione "public: 
virtual class BaseProtocol * __thiscall 
DefaultProtocolFactory::SpawnProtocol(unsigned __int64,class Variant &)" 
(?SpawnProtocol@DefaultProtocolFactory@@UAEPAVBaseProtocol@@_KAAVVariant@@@ Z) 

outboundconnectivity.obj : error LNK2019: riferimento al simbolo esterno 
"public: void __thiscall NATTraversalProtocol::SetOutboundAddress(struct 
sockaddr_in *)" 
(?SetOutboundAddress@NATTraversalProtocol@@QAEXPAUsockaddr_in@@@Z) non 
risolto nella funzione "public: bool __thiscall 
OutboundConnectivity::RegisterUDPVideoClient(unsigned long,struct 
sockaddr_in &,struct sockaddr_in &)" 
(?RegisterUDPVideoClient@OutboundConnectivity@@QAE_NKAAUsockaddr_in@@0@Z) 

前面那个帖子也说道解决方法

i think you can fix this by including 

this header: 
sources/thelib/include/protocols/rtp/nattraversalprotocol.h 

and this source: 
sources/thelib/src/protocols/rtp/nattraversalprotocol.cpp 


现在编译和连接都没问题了,开始debug,crtmpserver.exe启动时需要加载配置文件,就是那个crtmpserver.lua,

crtmpserver.exe crtmpserver.lua

在vs2010启动调试的话要做一点修改。在crtmpserver工程属性的调试页,命令参数填上crtmpserver.lua,工作目录修改为crtmpserver.exe所在的目录(不然会出现各种路劲找不到文件的问题)。

启动调试,发现没找到libeay32.dll, crtmpserver要用到SSL,请下载openssl-win32,然后把libeay32.dll和ssleay32.dll扔去crtmpserver.exe所在目录。

再次启动调试,发现一瞬间就退出了,经过debug,都是配置文件(crtmpserver.lua)的问题。把crtmpserver.lua的94、95行注释掉:

--sslKey="server.key",
--sslCert="server.crt"


这两个文件可以用 openssl生成,具体不说了。

再次启动,成功。


关于crtmpserver里rtmp的auth

authentication=
		{
			rtmp=
			{
				type="adobe",
				encoderAgents=
				{
					"FMLE/3.0 (compatible; FMSc/1.0)",
					"My user agent",
				},
				usersFile="users.lua"
			}
		}


users.lua格式(放到applications\flvplayback\目录下):

users=
{ 
        user1="pass1", 
        user2="pass2" 
} 








  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值