正在显示
8 个修改的文件
包含
95 行增加
和
97 行删除
@@ -59,8 +59,12 @@ int main(int argc, char** argv) | @@ -59,8 +59,12 @@ int main(int argc, char** argv) | ||
59 | int duration = 0; | 59 | int duration = 0; |
60 | int timeout = 0; | 60 | int timeout = 0; |
61 | 61 | ||
62 | + printf("detect rtmp stream\n"); | ||
63 | + printf("srs(simple-rtmp-server) client librtmp library.\n"); | ||
64 | + printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
65 | + | ||
62 | if (argc <= 3) { | 66 | if (argc <= 3) { |
63 | - printf("detect stream on RTMP server\n" | 67 | + printf("detect stream on RTMP server, print result to stderr.\n" |
64 | "Usage: %s <rtmp_url> <duration> <timeout>\n" | 68 | "Usage: %s <rtmp_url> <duration> <timeout>\n" |
65 | " rtmp_url RTMP stream url to play\n" | 69 | " rtmp_url RTMP stream url to play\n" |
66 | " duration how long to play, in seconds, stream time.\n" | 70 | " duration how long to play, in seconds, stream time.\n" |
@@ -68,69 +72,63 @@ int main(int argc, char** argv) | @@ -68,69 +72,63 @@ int main(int argc, char** argv) | ||
68 | "For example:\n" | 72 | "For example:\n" |
69 | " %s rtmp://127.0.0.1:1935/live/livestream 3 10\n", | 73 | " %s rtmp://127.0.0.1:1935/live/livestream 3 10\n", |
70 | argv[0], argv[0]); | 74 | argv[0], argv[0]); |
71 | - ret = 1; | ||
72 | - exit(ret); | ||
73 | - return ret; | 75 | + exit(-1); |
74 | } | 76 | } |
75 | 77 | ||
76 | rtmp_url = argv[1]; | 78 | rtmp_url = argv[1]; |
77 | duration = atoi(argv[2]); | 79 | duration = atoi(argv[2]); |
78 | timeout = atoi(argv[3]); | 80 | timeout = atoi(argv[3]); |
79 | 81 | ||
80 | - printf("detect rtmp stream\n"); | ||
81 | - printf("srs(simple-rtmp-server) client librtmp library.\n"); | ||
82 | - printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
83 | - printf("rtmp url: %s\n", rtmp_url); | ||
84 | - printf("duration: %ds, timeout:%ds\n", duration, timeout); | 82 | + srs_trace("rtmp url: %s", rtmp_url); |
83 | + srs_trace("duration: %ds, timeout:%ds", duration, timeout); | ||
85 | 84 | ||
86 | if (duration <= 0 || timeout <= 0) { | 85 | if (duration <= 0 || timeout <= 0) { |
87 | - ret = 1; | ||
88 | - fprintf(stderr, "duration and timeout must be positive. ret=%d\n", ret); | ||
89 | - exit(ret); | ||
90 | - return ret; | 86 | + srs_trace("duration and timeout must be positive."); |
87 | + exit(-1); | ||
91 | } | 88 | } |
92 | 89 | ||
93 | rtmp = srs_rtmp_create(rtmp_url); | 90 | rtmp = srs_rtmp_create(rtmp_url); |
94 | 91 | ||
95 | if ((ret = __srs_dns_resolve(rtmp)) != 0) { | 92 | if ((ret = __srs_dns_resolve(rtmp)) != 0) { |
96 | - fprintf(stderr, "dns resolve failed. ret=%d\n", ret); | 93 | + srs_trace("dns resolve failed. ret=%d", ret); |
97 | goto rtmp_destroy; | 94 | goto rtmp_destroy; |
98 | } | 95 | } |
99 | - printf("dns resolve success\n"); | 96 | + srs_trace("dns resolve success"); |
100 | time_dns_resolve = srs_get_time_ms(); | 97 | time_dns_resolve = srs_get_time_ms(); |
101 | 98 | ||
102 | if ((ret = __srs_connect_server(rtmp)) != 0) { | 99 | if ((ret = __srs_connect_server(rtmp)) != 0) { |
103 | - fprintf(stderr, "socket connect failed. ret=%d\n", ret); | 100 | + srs_trace("socket connect failed. ret=%d", ret); |
104 | goto rtmp_destroy; | 101 | goto rtmp_destroy; |
105 | } | 102 | } |
106 | - printf("socket connect success\n"); | 103 | + srs_trace("socket connect success"); |
107 | time_socket_connect = srs_get_time_ms(); | 104 | time_socket_connect = srs_get_time_ms(); |
108 | 105 | ||
109 | if ((ret = __srs_do_simple_handshake(rtmp)) != 0) { | 106 | if ((ret = __srs_do_simple_handshake(rtmp)) != 0) { |
110 | - fprintf(stderr, "do simple handshake failed. ret=%d\n", ret); | 107 | + srs_trace("do simple handshake failed. ret=%d", ret); |
111 | goto rtmp_destroy; | 108 | goto rtmp_destroy; |
112 | } | 109 | } |
113 | - printf("do simple handshake success\n"); | 110 | + srs_trace("do simple handshake success"); |
114 | 111 | ||
115 | if ((ret = srs_connect_app(rtmp)) != 0) { | 112 | if ((ret = srs_connect_app(rtmp)) != 0) { |
116 | - fprintf(stderr, "connect vhost/app failed. ret=%d\n", ret); | 113 | + srs_trace("connect vhost/app failed. ret=%d", ret); |
117 | goto rtmp_destroy; | 114 | goto rtmp_destroy; |
118 | } | 115 | } |
119 | - printf("connect vhost/app success\n"); | 116 | + srs_trace("connect vhost/app success"); |
120 | 117 | ||
121 | if ((ret = srs_play_stream(rtmp)) != 0) { | 118 | if ((ret = srs_play_stream(rtmp)) != 0) { |
122 | - fprintf(stderr, "play stream failed. ret=%d\n", ret); | 119 | + srs_trace("play stream failed. ret=%d", ret); |
123 | goto rtmp_destroy; | 120 | goto rtmp_destroy; |
124 | } | 121 | } |
125 | - printf("play stream success\n"); | 122 | + srs_trace("play stream success"); |
126 | time_play_stream = srs_get_time_ms(); | 123 | time_play_stream = srs_get_time_ms(); |
127 | 124 | ||
128 | for (;;) { | 125 | for (;;) { |
129 | if ((ret = srs_read_packet(rtmp, &type, ×tamp, &data, &size)) != 0) { | 126 | if ((ret = srs_read_packet(rtmp, &type, ×tamp, &data, &size)) != 0) { |
130 | - fprintf(stderr, "read packet failed. ret=%d\n", ret); | 127 | + srs_trace("read packet failed. ret=%d", ret); |
131 | goto rtmp_destroy; | 128 | goto rtmp_destroy; |
132 | } | 129 | } |
133 | - printf("got packet: type=%s, time=%d, size=%d\n", srs_type2string(type), timestamp, size); | 130 | + srs_trace("got packet: type=%s, time=%d, size=%d", |
131 | + srs_type2string(type), timestamp, size); | ||
134 | 132 | ||
135 | if (SRS_RTMP_TYPE_VIDEO == type || SRS_RTMP_TYPE_AUDIO == type) { | 133 | if (SRS_RTMP_TYPE_VIDEO == type || SRS_RTMP_TYPE_AUDIO == type) { |
136 | if (time_first_packet <= 0) { | 134 | if (time_first_packet <= 0) { |
@@ -144,12 +142,12 @@ int main(int argc, char** argv) | @@ -144,12 +142,12 @@ int main(int argc, char** argv) | ||
144 | free(data); | 142 | free(data); |
145 | 143 | ||
146 | if (srs_get_time_ms() - time_startup > timeout * 1000) { | 144 | if (srs_get_time_ms() - time_startup > timeout * 1000) { |
147 | - printf("timeout, terminate.\n"); | 145 | + srs_trace("timeout, terminate."); |
148 | goto rtmp_destroy; | 146 | goto rtmp_destroy; |
149 | } | 147 | } |
150 | 148 | ||
151 | if ((timestamp - basetime) > duration * 1000) { | 149 | if ((timestamp - basetime) > duration * 1000) { |
152 | - printf("duration exceed, terminate.\n"); | 150 | + srs_trace("duration exceed, terminate."); |
153 | goto rtmp_destroy; | 151 | goto rtmp_destroy; |
154 | } | 152 | } |
155 | } | 153 | } |
@@ -197,7 +195,9 @@ rtmp_destroy: | @@ -197,7 +195,9 @@ rtmp_destroy: | ||
197 | "\"remark1\": \"delay = stream - (time_cleanup - time_first_packet)\"", | 195 | "\"remark1\": \"delay = stream - (time_cleanup - time_first_packet)\"", |
198 | "\"remark2\": \"if code is not 0, user must ignore all data\"" | 196 | "\"remark2\": \"if code is not 0, user must ignore all data\"" |
199 | ); | 197 | ); |
200 | - printf("\n"); | 198 | + |
199 | + srs_trace(""); | ||
200 | + srs_trace("completed"); | ||
201 | 201 | ||
202 | return ret; | 202 | return ret; |
203 | } | 203 | } |
@@ -53,17 +53,20 @@ int main(int argc, char** argv) | @@ -53,17 +53,20 @@ int main(int argc, char** argv) | ||
53 | int tmp_file_size = 0; | 53 | int tmp_file_size = 0; |
54 | char* tmp_file; | 54 | char* tmp_file; |
55 | 55 | ||
56 | + printf("inject flv file keyframes to metadata.\n"); | ||
57 | + printf("srs(simple-rtmp-server) client librtmp library.\n"); | ||
58 | + printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
59 | + | ||
56 | if (argc <= 2) { | 60 | if (argc <= 2) { |
57 | printf("inject flv file keyframes to metadata\n" | 61 | printf("inject flv file keyframes to metadata\n" |
58 | "Usage: %s in_flv_file out_flv_file\n" | 62 | "Usage: %s in_flv_file out_flv_file\n" |
59 | " in_flv_file input flv file to inject.\n" | 63 | " in_flv_file input flv file to inject.\n" |
60 | " out_flv_file the inject output file, can be in_flv_file.\n" | 64 | " out_flv_file the inject output file, can be in_flv_file.\n" |
61 | "For example:\n" | 65 | "For example:\n" |
66 | + " %s doc/source.200kbps.768x320.flv injected.flv\n" | ||
62 | " %s ../../doc/source.200kbps.768x320.flv injected.flv\n", | 67 | " %s ../../doc/source.200kbps.768x320.flv injected.flv\n", |
63 | - argv[0], argv[0]); | ||
64 | - ret = 1; | ||
65 | - exit(ret); | ||
66 | - return ret; | 68 | + argv[0], argv[0], argv[0]); |
69 | + exit(-1); | ||
67 | } | 70 | } |
68 | 71 | ||
69 | in_flv_file = argv[1]; | 72 | in_flv_file = argv[1]; |
@@ -73,9 +76,6 @@ int main(int argc, char** argv) | @@ -73,9 +76,6 @@ int main(int argc, char** argv) | ||
73 | tmp_file = (char*)malloc(tmp_file_size); | 76 | tmp_file = (char*)malloc(tmp_file_size); |
74 | snprintf(tmp_file, tmp_file_size, "%s.tmp", out_flv_file); | 77 | snprintf(tmp_file, tmp_file_size, "%s.tmp", out_flv_file); |
75 | 78 | ||
76 | - srs_trace("inject flv file keyframes to metadata."); | ||
77 | - srs_trace("srs(simple-rtmp-server) client librtmp library."); | ||
78 | - srs_trace("version: %d.%d.%d", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
79 | srs_trace("input: %s", in_flv_file); | 79 | srs_trace("input: %s", in_flv_file); |
80 | srs_trace("output: %s", out_flv_file); | 80 | srs_trace("output: %s", out_flv_file); |
81 | srs_trace("tmp_file: %s", tmp_file); | 81 | srs_trace("tmp_file: %s", tmp_file); |
@@ -45,23 +45,22 @@ int main(int argc, char** argv) | @@ -45,23 +45,22 @@ int main(int argc, char** argv) | ||
45 | // flv handler | 45 | // flv handler |
46 | srs_flv_t flv; | 46 | srs_flv_t flv; |
47 | 47 | ||
48 | + printf("parse and show flv file detail.\n"); | ||
49 | + printf("srs(simple-rtmp-server) client librtmp library.\n"); | ||
50 | + printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
51 | + | ||
48 | if (argc <= 1) { | 52 | if (argc <= 1) { |
49 | printf("parse and show flv file detail\n" | 53 | printf("parse and show flv file detail\n" |
50 | "Usage: %s in_flv_file\n" | 54 | "Usage: %s in_flv_file\n" |
51 | " in_flv_file flv file to parse and show.\n" | 55 | " in_flv_file flv file to parse and show.\n" |
52 | "For example:\n" | 56 | "For example:\n" |
57 | + " %s doc/source.200kbps.768x320.flv\n" | ||
53 | " %s ../../doc/source.200kbps.768x320.flv\n", | 58 | " %s ../../doc/source.200kbps.768x320.flv\n", |
54 | - argv[0], argv[0]); | ||
55 | - ret = 1; | ||
56 | - exit(ret); | ||
57 | - return ret; | 59 | + argv[0], argv[0], argv[0]); |
60 | + exit(-1); | ||
58 | } | 61 | } |
59 | 62 | ||
60 | in_flv_file = argv[1]; | 63 | in_flv_file = argv[1]; |
61 | - | ||
62 | - srs_trace("parse and show flv file detail."); | ||
63 | - srs_trace("srs(simple-rtmp-server) client librtmp library."); | ||
64 | - srs_trace("version: %d.%d.%d", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
65 | srs_trace("input: %s", in_flv_file); | 64 | srs_trace("input: %s", in_flv_file); |
66 | 65 | ||
67 | if ((flv = srs_flv_open_read(in_flv_file)) == NULL) { | 66 | if ((flv = srs_flv_open_read(in_flv_file)) == NULL) { |
@@ -59,17 +59,20 @@ int main(int argc, char** argv) | @@ -59,17 +59,20 @@ int main(int argc, char** argv) | ||
59 | // flv handler | 59 | // flv handler |
60 | srs_flv_t flv; | 60 | srs_flv_t flv; |
61 | 61 | ||
62 | + printf("ingest flv file and publish to RTMP server like FFMPEG.\n"); | ||
63 | + printf("srs(simple-rtmp-server) client librtmp library.\n"); | ||
64 | + printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
65 | + | ||
62 | if (argc <= 2) { | 66 | if (argc <= 2) { |
63 | printf("ingest flv file and publish to RTMP server\n" | 67 | printf("ingest flv file and publish to RTMP server\n" |
64 | "Usage: %s <-i in_flv_file> <-y out_rtmp_url>\n" | 68 | "Usage: %s <-i in_flv_file> <-y out_rtmp_url>\n" |
65 | " in_flv_file input flv file, ingest from this file.\n" | 69 | " in_flv_file input flv file, ingest from this file.\n" |
66 | " out_rtmp_url output rtmp url, publish to this url.\n" | 70 | " out_rtmp_url output rtmp url, publish to this url.\n" |
67 | "For example:\n" | 71 | "For example:\n" |
68 | - " %s -i ../../doc/source.200kbps.768x320.flv -y rtmp://127.0.0.1/live/demo\n", | ||
69 | - argv[0], argv[0]); | ||
70 | - ret = 1; | ||
71 | - exit(ret); | ||
72 | - return ret; | 72 | + " %s -i doc/source.200kbps.768x320.flv -y rtmp://127.0.0.1/live/livestream\n" |
73 | + " %s -i ../../doc/source.200kbps.768x320.flv -y rtmp://127.0.0.1/live/livestream\n", | ||
74 | + argv[0], argv[0], argv[0]); | ||
75 | + exit(-1); | ||
73 | } | 76 | } |
74 | 77 | ||
75 | // parse options in FFMPEG format. | 78 | // parse options in FFMPEG format. |
@@ -86,9 +89,6 @@ int main(int argc, char** argv) | @@ -86,9 +89,6 @@ int main(int argc, char** argv) | ||
86 | } | 89 | } |
87 | } | 90 | } |
88 | 91 | ||
89 | - srs_trace("ingest flv file and publish to RTMP server like FFMPEG."); | ||
90 | - srs_trace("srs(simple-rtmp-server) client librtmp library."); | ||
91 | - srs_trace("version: %d.%d.%d", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
92 | srs_trace("input: %s", in_flv_file); | 92 | srs_trace("input: %s", in_flv_file); |
93 | srs_trace("output: %s", out_rtmp_url); | 93 | srs_trace("output: %s", out_rtmp_url); |
94 | 94 |
@@ -45,6 +45,10 @@ int main(int argc, char** argv) | @@ -45,6 +45,10 @@ int main(int argc, char** argv) | ||
45 | // rtmp handler | 45 | // rtmp handler |
46 | srs_rtmp_t irtmp, ortmp; | 46 | srs_rtmp_t irtmp, ortmp; |
47 | 47 | ||
48 | + printf("ingest RTMP and publish to RTMP server like edge.\n"); | ||
49 | + printf("srs(simple-rtmp-server) client librtmp library.\n"); | ||
50 | + printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
51 | + | ||
48 | if (argc <= 2) { | 52 | if (argc <= 2) { |
49 | printf("ingest RTMP and publish to RTMP server\n" | 53 | printf("ingest RTMP and publish to RTMP server\n" |
50 | "Usage: %s <-i in_rtmp_url> <-y out_rtmp_url>\n" | 54 | "Usage: %s <-i in_rtmp_url> <-y out_rtmp_url>\n" |
@@ -53,9 +57,7 @@ int main(int argc, char** argv) | @@ -53,9 +57,7 @@ int main(int argc, char** argv) | ||
53 | "For example:\n" | 57 | "For example:\n" |
54 | " %s -i rtmp://127.0.0.1/live/livestream -y rtmp://127.0.0.1/live/demo\n", | 58 | " %s -i rtmp://127.0.0.1/live/livestream -y rtmp://127.0.0.1/live/demo\n", |
55 | argv[0], argv[0]); | 59 | argv[0], argv[0]); |
56 | - ret = 1; | ||
57 | - exit(ret); | ||
58 | - return ret; | 60 | + exit(-1); |
59 | } | 61 | } |
60 | 62 | ||
61 | // parse options in FFMPEG format. | 63 | // parse options in FFMPEG format. |
@@ -72,9 +74,6 @@ int main(int argc, char** argv) | @@ -72,9 +74,6 @@ int main(int argc, char** argv) | ||
72 | } | 74 | } |
73 | } | 75 | } |
74 | 76 | ||
75 | - srs_trace("ingest RTMP and publish to RTMP server like edge."); | ||
76 | - srs_trace("srs(simple-rtmp-server) client librtmp library."); | ||
77 | - srs_trace("version: %d.%d.%d", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
78 | srs_trace("input: %s", in_rtmp_url); | 77 | srs_trace("input: %s", in_rtmp_url); |
79 | srs_trace("output: %s", out_rtmp_url); | 78 | srs_trace("output: %s", out_rtmp_url); |
80 | 79 |
@@ -31,31 +31,21 @@ gcc srs_play.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_play | @@ -31,31 +31,21 @@ gcc srs_play.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_play | ||
31 | 31 | ||
32 | int main(int argc, char** argv) | 32 | int main(int argc, char** argv) |
33 | { | 33 | { |
34 | - srs_rtmp_t rtmp; | ||
35 | - | ||
36 | - // packet data | ||
37 | - int type, size; | ||
38 | - u_int32_t timestamp = 0; | ||
39 | - char* data; | 34 | + printf("suck rtmp stream like rtmpdump\n"); |
35 | + printf("srs(simple-rtmp-server) client librtmp library.\n"); | ||
36 | + printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
40 | 37 | ||
41 | if (argc <= 1) { | 38 | if (argc <= 1) { |
42 | - printf("play stream on RTMP server\n" | ||
43 | - "Usage: %s <rtmp_url>\n" | 39 | + printf("Usage: %s <rtmp_url>\n" |
44 | " rtmp_url RTMP stream url to play\n" | 40 | " rtmp_url RTMP stream url to play\n" |
45 | "For example:\n" | 41 | "For example:\n" |
46 | " %s rtmp://127.0.0.1:1935/live/livestream\n", | 42 | " %s rtmp://127.0.0.1:1935/live/livestream\n", |
47 | argv[0], argv[0]); | 43 | argv[0], argv[0]); |
48 | - int ret = 1; | ||
49 | - exit(ret); | ||
50 | - return ret; | 44 | + exit(-1); |
51 | } | 45 | } |
52 | 46 | ||
53 | - rtmp = srs_rtmp_create(argv[1]); | ||
54 | - | ||
55 | - srs_trace("suck rtmp stream like rtmpdump"); | ||
56 | - srs_trace("srs(simple-rtmp-server) client librtmp library."); | ||
57 | - srs_trace("version: %d.%d.%d", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
58 | srs_trace("rtmp url: %s", argv[1]); | 47 | srs_trace("rtmp url: %s", argv[1]); |
48 | + srs_rtmp_t rtmp = srs_rtmp_create(argv[1]); | ||
59 | 49 | ||
60 | if (srs_simple_handshake(rtmp) != 0) { | 50 | if (srs_simple_handshake(rtmp) != 0) { |
61 | srs_trace("simple handshake failed."); | 51 | srs_trace("simple handshake failed."); |
@@ -76,6 +66,10 @@ int main(int argc, char** argv) | @@ -76,6 +66,10 @@ int main(int argc, char** argv) | ||
76 | srs_trace("play stream success"); | 66 | srs_trace("play stream success"); |
77 | 67 | ||
78 | for (;;) { | 68 | for (;;) { |
69 | + int type, size; | ||
70 | + u_int32_t timestamp = 0; | ||
71 | + char* data; | ||
72 | + | ||
79 | if (srs_read_packet(rtmp, &type, ×tamp, &data, &size) != 0) { | 73 | if (srs_read_packet(rtmp, &type, ×tamp, &data, &size) != 0) { |
80 | goto rtmp_destroy; | 74 | goto rtmp_destroy; |
81 | } | 75 | } |
@@ -32,54 +32,60 @@ gcc srs_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_publish | @@ -32,54 +32,60 @@ gcc srs_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_publish | ||
32 | 32 | ||
33 | int main(int argc, char** argv) | 33 | int main(int argc, char** argv) |
34 | { | 34 | { |
35 | - srs_rtmp_t rtmp; | ||
36 | - | ||
37 | - // packet data | ||
38 | - int type, size; | ||
39 | - u_int32_t timestamp = 0; | ||
40 | - char* data; | ||
41 | - | ||
42 | printf("publish rtmp stream to server like FMLE/FFMPEG/Encoder\n"); | 35 | printf("publish rtmp stream to server like FMLE/FFMPEG/Encoder\n"); |
43 | printf("srs(simple-rtmp-server) client librtmp library.\n"); | 36 | printf("srs(simple-rtmp-server) client librtmp library.\n"); |
44 | printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | 37 | printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); |
38 | + | ||
39 | + if (argc <= 1) { | ||
40 | + printf("Usage: %s <rtmp_url>\n" | ||
41 | + " rtmp_url RTMP stream url to publish\n" | ||
42 | + "For example:\n" | ||
43 | + " %s rtmp://127.0.0.1:1935/live/livestream\n", | ||
44 | + argv[0], argv[0]); | ||
45 | + exit(-1); | ||
46 | + } | ||
47 | + | ||
45 | // warn it . | 48 | // warn it . |
46 | // @see: https://github.com/winlinvip/simple-rtmp-server/issues/126 | 49 | // @see: https://github.com/winlinvip/simple-rtmp-server/issues/126 |
47 | - printf("\033[33m%s\033[0m", | 50 | + srs_trace("\033[33m%s\033[0m", |
48 | "[warning] it's only a sample to use librtmp. " | 51 | "[warning] it's only a sample to use librtmp. " |
49 | "please never use it to publish and test forward/transcode/edge/HLS whatever. " | 52 | "please never use it to publish and test forward/transcode/edge/HLS whatever. " |
50 | - "you should refer to this tool to use the srs-librtmp to publish the real media stream."); | ||
51 | - printf("\n"); | ||
52 | - | ||
53 | - rtmp = srs_rtmp_create("rtmp://127.0.0.1:1935/live/livestream"); | 53 | + "you should refer to this tool to use the srs-librtmp to publish the real media stream." |
54 | + "read about: https://github.com/winlinvip/simple-rtmp-server/issues/126"); | ||
55 | + srs_trace("rtmp url: %s", argv[1]); | ||
56 | + srs_rtmp_t rtmp = srs_rtmp_create(argv[1]); | ||
54 | 57 | ||
55 | if (srs_simple_handshake(rtmp) != 0) { | 58 | if (srs_simple_handshake(rtmp) != 0) { |
56 | - printf("simple handshake failed.\n"); | 59 | + srs_trace("simple handshake failed."); |
57 | goto rtmp_destroy; | 60 | goto rtmp_destroy; |
58 | } | 61 | } |
59 | - printf("simple handshake success\n"); | 62 | + srs_trace("simple handshake success"); |
60 | 63 | ||
61 | if (srs_connect_app(rtmp) != 0) { | 64 | if (srs_connect_app(rtmp) != 0) { |
62 | - printf("connect vhost/app failed.\n"); | 65 | + srs_trace("connect vhost/app failed."); |
63 | goto rtmp_destroy; | 66 | goto rtmp_destroy; |
64 | } | 67 | } |
65 | - printf("connect vhost/app success\n"); | 68 | + srs_trace("connect vhost/app success"); |
66 | 69 | ||
67 | if (srs_publish_stream(rtmp) != 0) { | 70 | if (srs_publish_stream(rtmp) != 0) { |
68 | - printf("publish stream failed.\n"); | 71 | + srs_trace("publish stream failed."); |
69 | goto rtmp_destroy; | 72 | goto rtmp_destroy; |
70 | } | 73 | } |
71 | - printf("publish stream success\n"); | 74 | + srs_trace("publish stream success"); |
72 | 75 | ||
76 | + u_int32_t timestamp = 0; | ||
73 | for (;;) { | 77 | for (;;) { |
74 | - type = SRS_RTMP_TYPE_VIDEO; | 78 | + int type = SRS_RTMP_TYPE_VIDEO; |
79 | + int size = 4096; | ||
80 | + char* data = (char*)malloc(4096); | ||
81 | + | ||
75 | timestamp += 40; | 82 | timestamp += 40; |
76 | - size = 4096; | ||
77 | - data = (char*)malloc(4096); | ||
78 | 83 | ||
79 | if (srs_write_packet(rtmp, type, timestamp, data, size) != 0) { | 84 | if (srs_write_packet(rtmp, type, timestamp, data, size) != 0) { |
80 | goto rtmp_destroy; | 85 | goto rtmp_destroy; |
81 | } | 86 | } |
82 | - printf("sent packet: type=%s, time=%d, size=%d\n", srs_type2string(type), timestamp, size); | 87 | + srs_trace("sent packet: type=%s, time=%d, size=%d", |
88 | + srs_type2string(type), timestamp, size); | ||
83 | 89 | ||
84 | usleep(40 * 1000); | 90 | usleep(40 * 1000); |
85 | } | 91 | } |
@@ -237,8 +237,8 @@ extern int64_t srs_get_nrecv_bytes(srs_rtmp_t rtmp); | @@ -237,8 +237,8 @@ extern int64_t srs_get_nrecv_bytes(srs_rtmp_t rtmp); | ||
237 | 237 | ||
238 | // log to console, for use srs-librtmp application. | 238 | // log to console, for use srs-librtmp application. |
239 | extern const char* srs_format_time(); | 239 | extern const char* srs_format_time(); |
240 | -#define srs_trace(msg, ...) printf("[%s]", srs_format_time());printf(msg, ##__VA_ARGS__);printf("\n") | ||
241 | -#define srs_verbose(msg, ...) printf("[%s]", srs_format_time());printf(msg, ##__VA_ARGS__);printf("\n") | 240 | +#define srs_trace(msg, ...) printf("[%s] ", srs_format_time());printf(msg, ##__VA_ARGS__);printf("\n") |
241 | +#define srs_verbose(msg, ...) printf("[%s] ", srs_format_time());printf(msg, ##__VA_ARGS__);printf("\n") | ||
242 | 242 | ||
243 | /************************************************************* | 243 | /************************************************************* |
244 | ************************************************************** | 244 | ************************************************************** |
-
请 注册 或 登录 后发表评论