不要钱
在easydarwin.xml中配置的Movies目录里面放一个名为qtaccess的文件,内容为:
<Limit WRITE>
require any-user
</Limit>
<Limit READ>
require any-user
</Limit>
方法一:用EasyPusher做直播推送;
方法二:修改RTSP ANNOUNCE里面的sdp信息,把 "o=- %u %u IN IP4 %s/r/n" 和 "c=IN IP4 %s/r/n"里面的ip地址改成127.0.0.1就可以了;
方法三:我们将EasyDarwin部署到公网,当服务器置身内网,用端口映射的方式对外提供服务,在接收RTSP/RTP推送的时候,经常会出现在SETUP步骤Darwin返回404错误,经过查找原因,主要是EasyDarwin对推送的sdp信息中的IP地址不能识别,服务器并不知道自己已经置身于公网的地址:
ifconfig查看地址信息
ip addr查看eth0地址列表
我们通过命令:ip addr add dev eth0 [公网IP],向eth0添加一个公网地址就解决问题了:
Windows添加公网地址的方法:
在EasyDarwin QTSSReflectorModule转发模块中,有一个控制转发Buffer时间的配置reflector_buffer_size_sec,我们将这个配置改成0,也就是在服务器端不做缓存,直接转发,这样在网络条件充足的情况下对比转发和实时流,转发带来的延时也几乎可以忽略了:
我们可以先配置easydarwin.xml文件中的
<PREF NAME="RTSP_debug_printfs" TYPE="Bool16" >true</PREF>
字段为true,然后重新启动EasyDarwin,请求EasyDarwin,如果一点报文都没有打印,那就是你访问的地址错了!如果报文有打印,那就可以具体看看返回的错误码是多少了,错误码对照表:
</tbody>
响应码 | 报文描述 | 定义 |
200 | Success OK | 成功创建 |
201 | Success Created | 成功创建 |
202 | Success Accepted | 已接受用于处理,但处理尚未完成 |
204 | Success No Content | 已接收请求,但不存在要回送的信息 |
206 | Success Partial Content | 已接收请求,但要回送的信息不完整 |
301 | Redirect Permanent Moved | 请求的数据具有新的位置且更改是永久的。 |
302 | Redirect Temp Moved | 请求的数据临时具有不同 URI |
303 | Redirect See Other | 可在另一 URI 下找到对请求的响应 |
305 | Use Proxy | 必须通过位置字段中提供的代理来访问请求的资源 |
400 | Client Bad Request | 请求中有语法问题,或不能满足请求 |
401 | Client Unauthorized | 未授权客户端访问数据 |
402 | Payment Required | 需要付款,表示计费系统已有效 |
403 | Client Forbidden | 禁止, 即使有授权也不需要访问 |
404 | Not Found | 服务器找不到给定的资源 |
405 | Method Not Allowed | 请求的方法不支持 |
407 | Proxy Authentication Required | 代理认证请求,客户机首先必须使用代理认证自身 |
408 | Request Timeout | 请求超时 |
409 | Conflict | 请求冲突 |
412 | Precondition Failed | 前提条件失败 |
415 | Unsupported Media Type | 服务器拒绝服务请求,因为不支持请求实体的格式 |
500 | Server Internal Error | 内部错误,因为意外情况,服务器不能完成请求 |
501 | Server Not Implemented | 未执行,服务器不支持请求 |
502 | Server Bad Gateway | 错误网关,服务器接收到来自上游服务器的无效响应 |
503 | Server Unavailable | 由于临时过载或无法获得服务护,服务器无法处理请求 |
505 | RTSP Version Not Supported | 不支持的RTSP版本 |
MP4文件需要先经过RTSP/RTP Hint处理,处理工具可以选择MP4Box或者MediaCoder等;
感谢QQ:591003999提供的完整解决方案
从git上导下来的Buildit的格式是:fileformat=dos,但是在Linux下的话 是需要fileformat=unix 所以 ./Buildit 就出现错误 无法执行,需要修改文件格式,
- 在Windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下
(UltraEdit):File-->Conversions-->DOS->UNIX
即可。
- 也可在Linux中转换:
首先要确保文件有可执行权限
#sh>chmod a+x filename
然后修改文件格式
#sh>vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盘退出)
(又或者用:dos2unix ./Buildit直接修改编码更方便,BTW:感谢Denny.bai提供的方法)
最后再执行文件
#sh>./filename
QQ交流群:288214068
Copyright © EasyDarwin.org 2012-2015