mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 19:00:01 +08:00
支持在addStreamProxy和on_publish中控制单个流是否开启时间戳覆盖 (#1930)
This commit is contained in:
parent
aa6581c253
commit
0948a3df31
@ -578,6 +578,12 @@
|
|||||||
"value": null,
|
"value": null,
|
||||||
"description": "hls保存根目录,置空使用默认目录",
|
"description": "hls保存根目录,置空使用默认目录",
|
||||||
"disabled": true
|
"disabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "modify_stamp",
|
||||||
|
"value": null,
|
||||||
|
"description": "是否重新计算时间戳",
|
||||||
|
"disabled": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1007,6 +1007,7 @@ void installWebApi() {
|
|||||||
getArgsValue(allArgs, "mp4_save_path", option.mp4_save_path);
|
getArgsValue(allArgs, "mp4_save_path", option.mp4_save_path);
|
||||||
getArgsValue(allArgs, "mp4_max_second", option.mp4_max_second);
|
getArgsValue(allArgs, "mp4_max_second", option.mp4_max_second);
|
||||||
getArgsValue(allArgs, "hls_save_path", option.hls_save_path);
|
getArgsValue(allArgs, "hls_save_path", option.hls_save_path);
|
||||||
|
getArgsValue(allArgs, "modify_stamp", option.modify_stamp);
|
||||||
|
|
||||||
addStreamProxy(allArgs["vhost"],
|
addStreamProxy(allArgs["vhost"],
|
||||||
allArgs["app"],
|
allArgs["app"],
|
||||||
|
@ -353,6 +353,9 @@ void installWebHook(){
|
|||||||
if (obj.isMember("mp4_as_player")) {
|
if (obj.isMember("mp4_as_player")) {
|
||||||
option.mp4_as_player = obj["mp4_as_player"].asBool();
|
option.mp4_as_player = obj["mp4_as_player"].asBool();
|
||||||
}
|
}
|
||||||
|
if (obj.isMember("modify_stamp")) {
|
||||||
|
option.modify_stamp = obj["modify_stamp"].asBool();
|
||||||
|
}
|
||||||
invoker(err, option);
|
invoker(err, option);
|
||||||
} else {
|
} else {
|
||||||
//推流鉴权失败
|
//推流鉴权失败
|
||||||
|
@ -28,6 +28,7 @@ ProtocolOption::ProtocolOption() {
|
|||||||
GET_CONFIG(bool, s_add_mute_audio, General::kAddMuteAudio);
|
GET_CONFIG(bool, s_add_mute_audio, General::kAddMuteAudio);
|
||||||
GET_CONFIG(bool, s_mp4_as_player, Record::kMP4AsPlayer);
|
GET_CONFIG(bool, s_mp4_as_player, Record::kMP4AsPlayer);
|
||||||
GET_CONFIG(uint32_t, s_continue_push_ms, General::kContinuePushMS);
|
GET_CONFIG(uint32_t, s_continue_push_ms, General::kContinuePushMS);
|
||||||
|
GET_CONFIG(bool, s_modify_stamp, General::kModifyStamp);
|
||||||
|
|
||||||
enable_hls = s_to_hls;
|
enable_hls = s_to_hls;
|
||||||
enable_mp4 = s_to_mp4;
|
enable_mp4 = s_to_mp4;
|
||||||
@ -35,6 +36,7 @@ ProtocolOption::ProtocolOption() {
|
|||||||
add_mute_audio = s_add_mute_audio;
|
add_mute_audio = s_add_mute_audio;
|
||||||
continue_push_ms = s_continue_push_ms;
|
continue_push_ms = s_continue_push_ms;
|
||||||
mp4_as_player = s_mp4_as_player;
|
mp4_as_player = s_mp4_as_player;
|
||||||
|
modify_stamp = s_modify_stamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::shared_ptr<MediaSinkInterface> makeRecorder(MediaSource &sender, const vector<Track::Ptr> &tracks, Recorder::type type, const string &custom_path, size_t max_second){
|
static std::shared_ptr<MediaSinkInterface> makeRecorder(MediaSource &sender, const vector<Track::Ptr> &tracks, Recorder::type type, const string &custom_path, size_t max_second){
|
||||||
@ -401,9 +403,8 @@ void MultiMediaSourceMuxer::resetTracks() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool MultiMediaSourceMuxer::onTrackFrame(const Frame::Ptr &frame_in) {
|
bool MultiMediaSourceMuxer::onTrackFrame(const Frame::Ptr &frame_in) {
|
||||||
GET_CONFIG(bool, modify_stamp, General::kModifyStamp);
|
|
||||||
auto frame = frame_in;
|
auto frame = frame_in;
|
||||||
if (modify_stamp) {
|
if (_option.modify_stamp) {
|
||||||
//开启了时间戳覆盖
|
//开启了时间戳覆盖
|
||||||
frame = std::make_shared<FrameStamp>(frame, _stamp[frame->getTrackType()],true);
|
frame = std::make_shared<FrameStamp>(frame, _stamp[frame->getTrackType()],true);
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,9 @@ public:
|
|||||||
|
|
||||||
//断连续推延时,单位毫秒,默认采用配置文件
|
//断连续推延时,单位毫秒,默认采用配置文件
|
||||||
uint32_t continue_push_ms;
|
uint32_t continue_push_ms;
|
||||||
|
|
||||||
|
//时间戳修复这一路流标志位
|
||||||
|
bool modify_stamp;
|
||||||
};
|
};
|
||||||
|
|
||||||
class MultiMediaSourceMuxer : public MediaSourceEventInterceptor, public MediaSink, public std::enable_shared_from_this<MultiMediaSourceMuxer>{
|
class MultiMediaSourceMuxer : public MediaSourceEventInterceptor, public MediaSink, public std::enable_shared_from_this<MultiMediaSourceMuxer>{
|
||||||
|
Loading…
Reference in New Issue
Block a user