正在显示
10 个修改的文件
包含
68 行增加
和
41 行删除
| @@ -902,24 +902,24 @@ vhost refer.anti_suck.com { | @@ -902,24 +902,24 @@ vhost refer.anti_suck.com { | ||
| 902 | # whatever the clients in concurrency. | 902 | # whatever the clients in concurrency. |
| 903 | pithy_print { | 903 | pithy_print { |
| 904 | # shared print interval for all publish clients, in milliseconds. | 904 | # shared print interval for all publish clients, in milliseconds. |
| 905 | - # if not specified, set to 1100. | 905 | + # default: 10000 |
| 906 | publish 10000; | 906 | publish 10000; |
| 907 | # shared print interval for all play clients, in milliseconds. | 907 | # shared print interval for all play clients, in milliseconds. |
| 908 | - # if not specified, set to 1300. | 908 | + # default: 10000 |
| 909 | play 10000; | 909 | play 10000; |
| 910 | # shared print interval for all forwarders, in milliseconds. | 910 | # shared print interval for all forwarders, in milliseconds. |
| 911 | - # if not specified, set to 2000. | 911 | + # default: 10000 |
| 912 | forwarder 10000; | 912 | forwarder 10000; |
| 913 | # shared print interval for all encoders, in milliseconds. | 913 | # shared print interval for all encoders, in milliseconds. |
| 914 | - # if not specified, set to 2000. | 914 | + # default: 10000 |
| 915 | encoder 10000; | 915 | encoder 10000; |
| 916 | # shared print interval for all ingesters, in milliseconds. | 916 | # shared print interval for all ingesters, in milliseconds. |
| 917 | - # if not specified, set to 2000. | 917 | + # default: 10000 |
| 918 | ingester 10000; | 918 | ingester 10000; |
| 919 | # shared print interval for all hls, in milliseconds. | 919 | # shared print interval for all hls, in milliseconds. |
| 920 | - # if not specified, set to 2000. | 920 | + # default: 10000 |
| 921 | hls 10000; | 921 | hls 10000; |
| 922 | # shared print interval for all edge, in milliseconds. | 922 | # shared print interval for all edge, in milliseconds. |
| 923 | - # if not specified, set to 2000. | 923 | + # default: 10000 |
| 924 | edge 10000; | 924 | edge 10000; |
| 925 | } | 925 | } |
| @@ -70,13 +70,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -70,13 +70,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 70 | #define SRS_CONF_DEFAULT_HTTP_STREAM_PORT 8080 | 70 | #define SRS_CONF_DEFAULT_HTTP_STREAM_PORT 8080 |
| 71 | #define SRS_CONF_DEFAULT_HTTP_API_PORT 1985 | 71 | #define SRS_CONF_DEFAULT_HTTP_API_PORT 1985 |
| 72 | 72 | ||
| 73 | -#define SRS_STAGE_PLAY_USER_INTERVAL_MS 1300 | ||
| 74 | -#define SRS_STAGE_PUBLISH_USER_INTERVAL_MS 1100 | ||
| 75 | -#define SRS_STAGE_FORWARDER_INTERVAL_MS 2000 | ||
| 76 | -#define SRS_STAGE_ENCODER_INTERVAL_MS 2000 | ||
| 77 | -#define SRS_STAGE_INGESTER_INTERVAL_MS 2000 | ||
| 78 | -#define SRS_STAGE_HLS_INTERVAL_MS 2000 | ||
| 79 | -#define SRS_STAGE_EDGE_INTERVAL_MS 2000 | 73 | +#define SRS_STAGE_PLAY_USER_INTERVAL_MS 10000 |
| 74 | +#define SRS_STAGE_PUBLISH_USER_INTERVAL_MS 10000 | ||
| 75 | +#define SRS_STAGE_FORWARDER_INTERVAL_MS 10000 | ||
| 76 | +#define SRS_STAGE_ENCODER_INTERVAL_MS 10000 | ||
| 77 | +#define SRS_STAGE_INGESTER_INTERVAL_MS 10000 | ||
| 78 | +#define SRS_STAGE_HLS_INTERVAL_MS 10000 | ||
| 79 | +#define SRS_STAGE_EDGE_INTERVAL_MS 10000 | ||
| 80 | 80 | ||
| 81 | #define SRS_AUTO_INGEST_TYPE_FILE "file" | 81 | #define SRS_AUTO_INGEST_TYPE_FILE "file" |
| 82 | #define SRS_AUTO_INGEST_TYPE_STREAM "stream" | 82 | #define SRS_AUTO_INGEST_TYPE_STREAM "stream" |
| @@ -230,11 +230,11 @@ int SrsEdgeIngester::process_publish_message(SrsMessage* msg) | @@ -230,11 +230,11 @@ int SrsEdgeIngester::process_publish_message(SrsMessage* msg) | ||
| 230 | srs_error("source process onMetaData message failed. ret=%d", ret); | 230 | srs_error("source process onMetaData message failed. ret=%d", ret); |
| 231 | return ret; | 231 | return ret; |
| 232 | } | 232 | } |
| 233 | - srs_trace("process onMetaData message success."); | 233 | + srs_info("process onMetaData message success."); |
| 234 | return ret; | 234 | return ret; |
| 235 | } | 235 | } |
| 236 | 236 | ||
| 237 | - srs_trace("ignore AMF0/AMF3 data message."); | 237 | + srs_info("ignore AMF0/AMF3 data message."); |
| 238 | return ret; | 238 | return ret; |
| 239 | } | 239 | } |
| 240 | 240 |
| @@ -326,7 +326,7 @@ void SrsEncoder::encoder() | @@ -326,7 +326,7 @@ void SrsEncoder::encoder() | ||
| 326 | // reportable | 326 | // reportable |
| 327 | if (pithy_print->can_print()) { | 327 | if (pithy_print->can_print()) { |
| 328 | // TODO: FIXME: show more info. | 328 | // TODO: FIXME: show more info. |
| 329 | - srs_trace("-> time=%"PRId64", encoders=%d, input=%s", | 329 | + srs_trace("-> "SRS_LOG_ID_ENCODER" time=%"PRId64", encoders=%d, input=%s", |
| 330 | pithy_print->age(), (int)ffmpegs.size(), input_stream_name.c_str()); | 330 | pithy_print->age(), (int)ffmpegs.size(), input_stream_name.c_str()); |
| 331 | } | 331 | } |
| 332 | } | 332 | } |
| @@ -517,7 +517,7 @@ SrsHlsAacJitter::SrsHlsAacJitter() | @@ -517,7 +517,7 @@ SrsHlsAacJitter::SrsHlsAacJitter() | ||
| 517 | SrsHlsMuxer::SrsHlsMuxer() | 517 | SrsHlsMuxer::SrsHlsMuxer() |
| 518 | { | 518 | { |
| 519 | hls_fragment = hls_window = 0; | 519 | hls_fragment = hls_window = 0; |
| 520 | - file_index = 0; | 520 | + _sequence_no = 0; |
| 521 | current = NULL; | 521 | current = NULL; |
| 522 | } | 522 | } |
| 523 | 523 | ||
| @@ -533,6 +533,11 @@ SrsHlsMuxer::~SrsHlsMuxer() | @@ -533,6 +533,11 @@ SrsHlsMuxer::~SrsHlsMuxer() | ||
| 533 | srs_freep(current); | 533 | srs_freep(current); |
| 534 | } | 534 | } |
| 535 | 535 | ||
| 536 | +int SrsHlsMuxer::sequence_no() | ||
| 537 | +{ | ||
| 538 | + return _sequence_no; | ||
| 539 | +} | ||
| 540 | + | ||
| 536 | int SrsHlsMuxer::update_config( | 541 | int SrsHlsMuxer::update_config( |
| 537 | string _app, string _stream, string path, int fragment, int window | 542 | string _app, string _stream, string path, int fragment, int window |
| 538 | ) { | 543 | ) { |
| @@ -567,7 +572,7 @@ int SrsHlsMuxer::segment_open(int64_t segment_start_dts) | @@ -567,7 +572,7 @@ int SrsHlsMuxer::segment_open(int64_t segment_start_dts) | ||
| 567 | 572 | ||
| 568 | // new segment. | 573 | // new segment. |
| 569 | current = new SrsHlsSegment(); | 574 | current = new SrsHlsSegment(); |
| 570 | - current->sequence_no = file_index++; | 575 | + current->sequence_no = _sequence_no++; |
| 571 | current->segment_start_dts = segment_start_dts; | 576 | current->segment_start_dts = segment_start_dts; |
| 572 | 577 | ||
| 573 | // generate filename. | 578 | // generate filename. |
| @@ -690,7 +695,7 @@ int SrsHlsMuxer::segment_close(string log_desc) | @@ -690,7 +695,7 @@ int SrsHlsMuxer::segment_close(string log_desc) | ||
| 690 | if (current->duration * 1000 >= SRS_AUTO_HLS_SEGMENT_MIN_DURATION_MS) { | 695 | if (current->duration * 1000 >= SRS_AUTO_HLS_SEGMENT_MIN_DURATION_MS) { |
| 691 | segments.push_back(current); | 696 | segments.push_back(current); |
| 692 | 697 | ||
| 693 | - srs_trace("%s reap ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"", | 698 | + srs_info("%s reap ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"", |
| 694 | log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration, | 699 | log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration, |
| 695 | current->segment_start_dts); | 700 | current->segment_start_dts); |
| 696 | 701 | ||
| @@ -709,7 +714,7 @@ int SrsHlsMuxer::segment_close(string log_desc) | @@ -709,7 +714,7 @@ int SrsHlsMuxer::segment_close(string log_desc) | ||
| 709 | } | 714 | } |
| 710 | } else { | 715 | } else { |
| 711 | // reuse current segment index. | 716 | // reuse current segment index. |
| 712 | - file_index--; | 717 | + _sequence_no--; |
| 713 | 718 | ||
| 714 | srs_trace("%s drop ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"", | 719 | srs_trace("%s drop ts segment, sequence_no=%d, uri=%s, duration=%.2f, start=%"PRId64"", |
| 715 | log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration, | 720 | log_desc.c_str(), current->sequence_no, current->uri.c_str(), current->duration, |
| @@ -1470,7 +1475,9 @@ void SrsHls::hls_mux() | @@ -1470,7 +1475,9 @@ void SrsHls::hls_mux() | ||
| 1470 | { | 1475 | { |
| 1471 | // reportable | 1476 | // reportable |
| 1472 | if (pithy_print->can_print()) { | 1477 | if (pithy_print->can_print()) { |
| 1473 | - srs_trace("-> time=%"PRId64"", pithy_print->age()); | 1478 | + srs_trace("-> "SRS_LOG_ID_HLS |
| 1479 | + " time=%"PRId64", dts=%"PRId64", sequence_no=%d", | ||
| 1480 | + pithy_print->age(), stream_dts, muxer->sequence_no()); | ||
| 1474 | } | 1481 | } |
| 1475 | 1482 | ||
| 1476 | pithy_print->elapse(); | 1483 | pithy_print->elapse(); |
| @@ -147,7 +147,7 @@ private: | @@ -147,7 +147,7 @@ private: | ||
| 147 | int hls_fragment; | 147 | int hls_fragment; |
| 148 | int hls_window; | 148 | int hls_window; |
| 149 | private: | 149 | private: |
| 150 | - int file_index; | 150 | + int _sequence_no; |
| 151 | std::string m3u8; | 151 | std::string m3u8; |
| 152 | private: | 152 | private: |
| 153 | /** | 153 | /** |
| @@ -162,6 +162,8 @@ public: | @@ -162,6 +162,8 @@ public: | ||
| 162 | SrsHlsMuxer(); | 162 | SrsHlsMuxer(); |
| 163 | virtual ~SrsHlsMuxer(); | 163 | virtual ~SrsHlsMuxer(); |
| 164 | public: | 164 | public: |
| 165 | + virtual int sequence_no(); | ||
| 166 | +public: | ||
| 165 | virtual int update_config(std::string _app, std::string _stream, std::string path, int fragment, int window); | 167 | virtual int update_config(std::string _app, std::string _stream, std::string path, int fragment, int window); |
| 166 | /** | 168 | /** |
| 167 | * open a new segment(a new ts file), | 169 | * open a new segment(a new ts file), |
| @@ -101,7 +101,7 @@ void SrsFastLog::verbose(const char* tag, int context_id, const char* fmt, ...) | @@ -101,7 +101,7 @@ void SrsFastLog::verbose(const char* tag, int context_id, const char* fmt, ...) | ||
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | int size = 0; | 103 | int size = 0; |
| 104 | - if (!generate_header(tag, context_id, "verb", &size)) { | 104 | + if (!generate_header(false, tag, context_id, "verb", &size)) { |
| 105 | return; | 105 | return; |
| 106 | } | 106 | } |
| 107 | 107 | ||
| @@ -121,7 +121,7 @@ void SrsFastLog::info(const char* tag, int context_id, const char* fmt, ...) | @@ -121,7 +121,7 @@ void SrsFastLog::info(const char* tag, int context_id, const char* fmt, ...) | ||
| 121 | } | 121 | } |
| 122 | 122 | ||
| 123 | int size = 0; | 123 | int size = 0; |
| 124 | - if (!generate_header(tag, context_id, "debug", &size)) { | 124 | + if (!generate_header(false, tag, context_id, "debug", &size)) { |
| 125 | return; | 125 | return; |
| 126 | } | 126 | } |
| 127 | 127 | ||
| @@ -141,7 +141,7 @@ void SrsFastLog::trace(const char* tag, int context_id, const char* fmt, ...) | @@ -141,7 +141,7 @@ void SrsFastLog::trace(const char* tag, int context_id, const char* fmt, ...) | ||
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | int size = 0; | 143 | int size = 0; |
| 144 | - if (!generate_header(tag, context_id, "trace", &size)) { | 144 | + if (!generate_header(false, tag, context_id, "trace", &size)) { |
| 145 | return; | 145 | return; |
| 146 | } | 146 | } |
| 147 | 147 | ||
| @@ -161,7 +161,7 @@ void SrsFastLog::warn(const char* tag, int context_id, const char* fmt, ...) | @@ -161,7 +161,7 @@ void SrsFastLog::warn(const char* tag, int context_id, const char* fmt, ...) | ||
| 161 | } | 161 | } |
| 162 | 162 | ||
| 163 | int size = 0; | 163 | int size = 0; |
| 164 | - if (!generate_header(tag, context_id, "warn", &size)) { | 164 | + if (!generate_header(true, tag, context_id, "warn", &size)) { |
| 165 | return; | 165 | return; |
| 166 | } | 166 | } |
| 167 | 167 | ||
| @@ -181,7 +181,7 @@ void SrsFastLog::error(const char* tag, int context_id, const char* fmt, ...) | @@ -181,7 +181,7 @@ void SrsFastLog::error(const char* tag, int context_id, const char* fmt, ...) | ||
| 181 | } | 181 | } |
| 182 | 182 | ||
| 183 | int size = 0; | 183 | int size = 0; |
| 184 | - if (!generate_header(tag, context_id, "error", &size)) { | 184 | + if (!generate_header(true, tag, context_id, "error", &size)) { |
| 185 | return; | 185 | return; |
| 186 | } | 186 | } |
| 187 | 187 | ||
| @@ -245,7 +245,7 @@ int SrsFastLog::on_reload_log_file() | @@ -245,7 +245,7 @@ int SrsFastLog::on_reload_log_file() | ||
| 245 | return ret; | 245 | return ret; |
| 246 | } | 246 | } |
| 247 | 247 | ||
| 248 | -bool SrsFastLog::generate_header(const char* tag, int context_id, const char* level_name, int* header_size) | 248 | +bool SrsFastLog::generate_header(bool error, const char* tag, int context_id, const char* level_name, int* header_size) |
| 249 | { | 249 | { |
| 250 | // clock time | 250 | // clock time |
| 251 | timeval tv; | 251 | timeval tv; |
| @@ -262,16 +262,30 @@ bool SrsFastLog::generate_header(const char* tag, int context_id, const char* le | @@ -262,16 +262,30 @@ bool SrsFastLog::generate_header(const char* tag, int context_id, const char* le | ||
| 262 | // write log header | 262 | // write log header |
| 263 | int log_header_size = -1; | 263 | int log_header_size = -1; |
| 264 | 264 | ||
| 265 | - if (tag) { | ||
| 266 | - log_header_size = snprintf(log_data, LOG_MAX_SIZE, | ||
| 267 | - "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%s][%d][%d] ", | ||
| 268 | - 1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000), | ||
| 269 | - level_name, tag, context_id, errno); | 265 | + if (error) { |
| 266 | + if (tag) { | ||
| 267 | + log_header_size = snprintf(log_data, LOG_MAX_SIZE, | ||
| 268 | + "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%s][%d][%d] ", | ||
| 269 | + 1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000), | ||
| 270 | + level_name, tag, context_id, errno); | ||
| 271 | + } else { | ||
| 272 | + log_header_size = snprintf(log_data, LOG_MAX_SIZE, | ||
| 273 | + "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%d][%d] ", | ||
| 274 | + 1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000), | ||
| 275 | + level_name, context_id, errno); | ||
| 276 | + } | ||
| 270 | } else { | 277 | } else { |
| 271 | - log_header_size = snprintf(log_data, LOG_MAX_SIZE, | ||
| 272 | - "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%d][%d] ", | ||
| 273 | - 1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000), | ||
| 274 | - level_name, context_id, errno); | 278 | + if (tag) { |
| 279 | + log_header_size = snprintf(log_data, LOG_MAX_SIZE, | ||
| 280 | + "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%s][%d] ", | ||
| 281 | + 1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000), | ||
| 282 | + level_name, tag, context_id); | ||
| 283 | + } else { | ||
| 284 | + log_header_size = snprintf(log_data, LOG_MAX_SIZE, | ||
| 285 | + "[%d-%02d-%02d %02d:%02d:%02d.%03d][%s][%d] ", | ||
| 286 | + 1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int)(tv.tv_usec / 1000), | ||
| 287 | + level_name, context_id); | ||
| 288 | + } | ||
| 275 | } | 289 | } |
| 276 | 290 | ||
| 277 | if (log_header_size == -1) { | 291 | if (log_header_size == -1) { |
| @@ -84,7 +84,7 @@ public: | @@ -84,7 +84,7 @@ public: | ||
| 84 | virtual int on_reload_log_level(); | 84 | virtual int on_reload_log_level(); |
| 85 | virtual int on_reload_log_file(); | 85 | virtual int on_reload_log_file(); |
| 86 | private: | 86 | private: |
| 87 | - virtual bool generate_header(const char* tag, int context_id, const char* level_name, int* header_size); | 87 | + virtual bool generate_header(bool error, const char* tag, int context_id, const char* level_name, int* header_size); |
| 88 | virtual void write_log(int& fd, char* str_log, int size, int level); | 88 | virtual void write_log(int& fd, char* str_log, int size, int level); |
| 89 | virtual void open_log_file(); | 89 | virtual void open_log_file(); |
| 90 | }; | 90 | }; |
| @@ -741,11 +741,11 @@ int SrsRtmpConn::process_publish_message(SrsSource* source, SrsMessage* msg, boo | @@ -741,11 +741,11 @@ int SrsRtmpConn::process_publish_message(SrsSource* source, SrsMessage* msg, boo | ||
| 741 | srs_error("source process onMetaData message failed. ret=%d", ret); | 741 | srs_error("source process onMetaData message failed. ret=%d", ret); |
| 742 | return ret; | 742 | return ret; |
| 743 | } | 743 | } |
| 744 | - srs_trace("process onMetaData message success."); | 744 | + srs_info("process onMetaData message success."); |
| 745 | return ret; | 745 | return ret; |
| 746 | } | 746 | } |
| 747 | 747 | ||
| 748 | - srs_trace("ignore AMF0/AMF3 data message."); | 748 | + srs_info("ignore AMF0/AMF3 data message."); |
| 749 | return ret; | 749 | return ret; |
| 750 | } | 750 | } |
| 751 | 751 |
| @@ -158,5 +158,9 @@ extern ISrsThreadContext* _srs_context; | @@ -158,5 +158,9 @@ extern ISrsThreadContext* _srs_context; | ||
| 158 | #define SRS_LOG_ID_WEB_PUBLISH "WPB" | 158 | #define SRS_LOG_ID_WEB_PUBLISH "WPB" |
| 159 | // ingester for edge(play)/origin | 159 | // ingester for edge(play)/origin |
| 160 | #define SRS_LOG_ID_INGESTER "IGS" | 160 | #define SRS_LOG_ID_INGESTER "IGS" |
| 161 | +// hls log id. | ||
| 162 | +#define SRS_LOG_ID_HLS "HLS" | ||
| 163 | +// encoder log id. | ||
| 164 | +#define SRS_LOG_ID_ENCODER "ENC" | ||
| 161 | 165 | ||
| 162 | #endif | 166 | #endif |
-
请 注册 或 登录 后发表评论