Skip to content

Commit fac68de

Browse files
committed
recorder now writes correct flv track mask
1 parent 51c1459 commit fac68de

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

ngx_rtmp_record_module.c

+24
Original file line numberDiff line numberDiff line change
@@ -790,13 +790,31 @@ ngx_rtmp_record_node_close(ngx_rtmp_session_t *s,
790790
void **app_conf;
791791
ngx_int_t rc;
792792
ngx_rtmp_record_done_t v;
793+
u_char av;
793794

794795
rracf = rctx->conf;
795796

796797
if (rctx->file.fd == NGX_INVALID_FILE) {
797798
return NGX_AGAIN;
798799
}
799800

801+
if (rctx->initialized) {
802+
av = 0;
803+
804+
if (rctx->video) {
805+
av |= 0x01;
806+
}
807+
808+
if (rctx->audio) {
809+
av |= 0x04;
810+
}
811+
812+
if (ngx_write_file(&rctx->file, &av, 1, 4) == NGX_ERROR) {
813+
ngx_log_error(NGX_LOG_CRIT, s->connection->log, ngx_errno,
814+
"record: %V error writing av mask", &rracf->id);
815+
}
816+
}
817+
800818
if (ngx_close_file(rctx->file.fd) == NGX_FILE_ERROR) {
801819
err = ngx_errno;
802820
ngx_log_error(NGX_LOG_CRIT, s->connection->log, err,
@@ -866,6 +884,12 @@ ngx_rtmp_record_write_frame(ngx_rtmp_session_t *s,
866884
"record: %V frame: mlen=%uD",
867885
&rracf->id, h->mlen);
868886

887+
if (h->type == NGX_RTMP_MSG_VIDEO) {
888+
rctx->video = 1;
889+
} else {
890+
rctx->audio = 1;
891+
}
892+
869893
timestamp = h->timestamp - rctx->epoch;
870894

871895
/* write tag header */

ngx_rtmp_record_module.h

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ typedef struct {
5151
unsigned aac_header_sent:1;
5252
unsigned avc_header_sent:1;
5353
unsigned video_key_sent:1;
54+
unsigned audio:1;
55+
unsigned video:1;
5456
} ngx_rtmp_record_rec_ctx_t;
5557

5658

0 commit comments

Comments
 (0)