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,
|
||||
"description": "hls保存根目录,置空使用默认目录",
|
||||
"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_max_second", option.mp4_max_second);
|
||||
getArgsValue(allArgs, "hls_save_path", option.hls_save_path);
|
||||
getArgsValue(allArgs, "modify_stamp", option.modify_stamp);
|
||||
|
||||
addStreamProxy(allArgs["vhost"],
|
||||
allArgs["app"],
|
||||
|
@ -353,6 +353,9 @@ void installWebHook(){
|
||||
if (obj.isMember("mp4_as_player")) {
|
||||
option.mp4_as_player = obj["mp4_as_player"].asBool();
|
||||
}
|
||||
if (obj.isMember("modify_stamp")) {
|
||||
option.modify_stamp = obj["modify_stamp"].asBool();
|
||||
}
|
||||
invoker(err, option);
|
||||
} else {
|
||||
//推流鉴权失败
|
||||
|
@ -28,6 +28,7 @@ ProtocolOption::ProtocolOption() {
|
||||
GET_CONFIG(bool, s_add_mute_audio, General::kAddMuteAudio);
|
||||
GET_CONFIG(bool, s_mp4_as_player, Record::kMP4AsPlayer);
|
||||
GET_CONFIG(uint32_t, s_continue_push_ms, General::kContinuePushMS);
|
||||
GET_CONFIG(bool, s_modify_stamp, General::kModifyStamp);
|
||||
|
||||
enable_hls = s_to_hls;
|
||||
enable_mp4 = s_to_mp4;
|
||||
@ -35,6 +36,7 @@ ProtocolOption::ProtocolOption() {
|
||||
add_mute_audio = s_add_mute_audio;
|
||||
continue_push_ms = s_continue_push_ms;
|
||||
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){
|
||||
@ -401,9 +403,8 @@ void MultiMediaSourceMuxer::resetTracks() {
|
||||
}
|
||||
|
||||
bool MultiMediaSourceMuxer::onTrackFrame(const Frame::Ptr &frame_in) {
|
||||
GET_CONFIG(bool, modify_stamp, General::kModifyStamp);
|
||||
auto frame = frame_in;
|
||||
if (modify_stamp) {
|
||||
if (_option.modify_stamp) {
|
||||
//开启了时间戳覆盖
|
||||
frame = std::make_shared<FrameStamp>(frame, _stamp[frame->getTrackType()],true);
|
||||
}
|
||||
@ -471,4 +472,4 @@ bool MultiMediaSourceMuxer::isEnabled(){
|
||||
return _is_enable;
|
||||
}
|
||||
|
||||
}//namespace mediakit
|
||||
}//namespace mediakit
|
||||
|
@ -57,6 +57,9 @@ public:
|
||||
|
||||
//断连续推延时,单位毫秒,默认采用配置文件
|
||||
uint32_t continue_push_ms;
|
||||
|
||||
//时间戳修复这一路流标志位
|
||||
bool modify_stamp;
|
||||
};
|
||||
|
||||
class MultiMediaSourceMuxer : public MediaSourceEventInterceptor, public MediaSink, public std::enable_shared_from_this<MultiMediaSourceMuxer>{
|
||||
|
Loading…
Reference in New Issue
Block a user