FFmpeg超时时间与hook超时时间关联

This commit is contained in:
xiongziliang 2019-06-24 14:51:49 +08:00
parent 276aa1a497
commit 99dda48bf7
2 changed files with 21 additions and 17 deletions

View File

@ -44,6 +44,7 @@
#include "Player/PlayerProxy.h" #include "Player/PlayerProxy.h"
#include "Util/MD5.h" #include "Util/MD5.h"
#include "WebApi.h" #include "WebApi.h"
#include "WebHook.h"
#if !defined(_WIN32) #if !defined(_WIN32)
#include "FFmpegSource.h" #include "FFmpegSource.h"
@ -88,8 +89,8 @@ typedef enum {
} ApiErr; } ApiErr;
#define API_FIELD "api." #define API_FIELD "api."
const char kApiDebug[] = API_FIELD"apiDebug"; const string kApiDebug = API_FIELD"apiDebug";
const char kSecret[] = API_FIELD"secret"; const string kSecret = API_FIELD"secret";
static onceToken token([]() { static onceToken token([]() {
mINI::Instance()[kApiDebug] = "1"; mINI::Instance()[kApiDebug] = "1";
@ -617,6 +618,8 @@ void installWebApi() {
CHECK_ARGS("vhost","app","stream"); CHECK_ARGS("vhost","app","stream");
//通过FFmpeg按需拉流 //通过FFmpeg按需拉流
GET_CONFIG(int,rtmp_port,Rtmp::kPort); GET_CONFIG(int,rtmp_port,Rtmp::kPort);
GET_CONFIG(int,timeout_sec,Hook::kTimeoutSec);
string dst_url = StrPrinter string dst_url = StrPrinter
<< "rtmp://127.0.0.1:" << "rtmp://127.0.0.1:"
<< rtmp_port << "/" << rtmp_port << "/"
@ -626,7 +629,7 @@ void installWebApi() {
addFFmepgSource("http://live.hkstv.hk.lxdns.com/live/hks2/playlist.m3u8",/** ffmpeg拉流支持任意编码格式任意协议 **/ addFFmepgSource("http://live.hkstv.hk.lxdns.com/live/hks2/playlist.m3u8",/** ffmpeg拉流支持任意编码格式任意协议 **/
dst_url, dst_url,
10000, (1000 * timeout_sec) - 500,
[invoker,val,headerOut](const SockException &ex,const string &key){ [invoker,val,headerOut](const SockException &ex,const string &key){
if(ex){ if(ex){
const_cast<Value &>(val)["code"] = API::OtherFailed; const_cast<Value &>(val)["code"] = API::OtherFailed;

View File

@ -38,6 +38,7 @@
#include "Network/TcpSession.h" #include "Network/TcpSession.h"
#include "Rtsp/RtspSession.h" #include "Rtsp/RtspSession.h"
#include "Http/HttpSession.h" #include "Http/HttpSession.h"
#include "WebHook.h"
using namespace Json; using namespace Json;
using namespace toolkit; using namespace toolkit;
@ -57,20 +58,20 @@ typedef HttpArgs ArgsType;
namespace Hook { namespace Hook {
#define HOOK_FIELD "hook." #define HOOK_FIELD "hook."
const char kEnable[] = HOOK_FIELD"enable"; const string kEnable = HOOK_FIELD"enable";
const char kTimeoutSec[] = HOOK_FIELD"timeoutSec"; const string kTimeoutSec = HOOK_FIELD"timeoutSec";
const char kOnPublish[] = HOOK_FIELD"on_publish"; const string kOnPublish = HOOK_FIELD"on_publish";
const char kOnPlay[] = HOOK_FIELD"on_play"; const string kOnPlay = HOOK_FIELD"on_play";
const char kOnFlowReport[] = HOOK_FIELD"on_flow_report"; const string kOnFlowReport = HOOK_FIELD"on_flow_report";
const char kOnRtspRealm[] = HOOK_FIELD"on_rtsp_realm"; const string kOnRtspRealm = HOOK_FIELD"on_rtsp_realm";
const char kOnRtspAuth[] = HOOK_FIELD"on_rtsp_auth"; const string kOnRtspAuth = HOOK_FIELD"on_rtsp_auth";
const char kOnStreamChanged[] = HOOK_FIELD"on_stream_changed"; const string kOnStreamChanged = HOOK_FIELD"on_stream_changed";
const char kOnStreamNotFound[] = HOOK_FIELD"on_stream_not_found"; const string kOnStreamNotFound = HOOK_FIELD"on_stream_not_found";
const char kOnRecordMp4[] = HOOK_FIELD"on_record_mp4"; const string kOnRecordMp4 = HOOK_FIELD"on_record_mp4";
const char kOnShellLogin[] = HOOK_FIELD"on_shell_login"; const string kOnShellLogin = HOOK_FIELD"on_shell_login";
const char kOnStreamNoneReader[] = HOOK_FIELD"on_stream_none_reader"; const string kOnStreamNoneReader = HOOK_FIELD"on_stream_none_reader";
const char kOnHttpAccess[] = HOOK_FIELD"on_http_access"; const string kOnHttpAccess = HOOK_FIELD"on_http_access";
const char kAdminParams[] = HOOK_FIELD"admin_params"; const string kAdminParams = HOOK_FIELD"admin_params";
onceToken token([](){ onceToken token([](){
mINI::Instance()[kEnable] = true; mINI::Instance()[kEnable] = true;