winlin

refine code for bug #66

@@ -34,18 +34,26 @@ gcc srs_h264_raw_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_h @@ -34,18 +34,26 @@ gcc srs_h264_raw_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_h
34 34
35 int main(int argc, char** argv) 35 int main(int argc, char** argv)
36 { 36 {
37 - srs_rtmp_t rtmp;  
38 -  
39 - // packet data  
40 - int type, size;  
41 - u_int32_t timestamp = 0;  
42 - char* data;  
43 -  
44 srs_trace("publish raw h.264 as rtmp stream to server like FMLE/FFMPEG/Encoder"); 37 srs_trace("publish raw h.264 as rtmp stream to server like FMLE/FFMPEG/Encoder");
45 srs_trace("srs(simple-rtmp-server) client librtmp library."); 38 srs_trace("srs(simple-rtmp-server) client librtmp library.");
46 - srs_trace("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); 39 + srs_trace("version: %d.%d.%d", srs_version_major(), srs_version_minor(), srs_version_revision());
47 40
48 - rtmp = srs_rtmp_create("rtmp://127.0.0.1:1935/live/livestream"); 41 + if (argc <= 2) {
  42 + srs_trace("Usage: %s <h264_raw_file> <rtmp_publish_url>", argv[0]);
  43 + srs_trace(" h264_raw_file: the raw h264 steam file.");
  44 + srs_trace(" rtmp_publish_url: the rtmp publish url.");
  45 + srs_trace("For example:");
  46 + srs_trace(" %s ./720p.h264.raw rtmp://127.0.0.1:1935/live/livestream", argv[0]);
  47 + srs_trace("Where the file: http://winlinvip.github.io/srs.release/3rdparty/720p.h264.raw");
  48 + srs_trace("See: https://github.com/winlinvip/simple-rtmp-server/issues/66");
  49 + exit(-1);
  50 + }
  51 +
  52 + const char* raw_file = argv[1];
  53 + const char* rtmp_url = argv[2];
  54 + srs_trace("raw_file=%s, rtmp_url=%s", raw_file, rtmp_url);
  55 +
  56 + srs_rtmp_t rtmp = srs_rtmp_create(rtmp_url);
49 57
50 if (srs_simple_handshake(rtmp) != 0) { 58 if (srs_simple_handshake(rtmp) != 0) {
51 srs_trace("simple handshake failed."); 59 srs_trace("simple handshake failed.");
@@ -65,11 +73,12 @@ int main(int argc, char** argv) @@ -65,11 +73,12 @@ int main(int argc, char** argv)
65 } 73 }
66 srs_trace("publish stream success"); 74 srs_trace("publish stream success");
67 75
  76 + u_int32_t timestamp = 0;
68 for (;;) { 77 for (;;) {
69 - type = SRS_RTMP_TYPE_VIDEO; 78 + int type = SRS_RTMP_TYPE_VIDEO;
70 timestamp += 40; 79 timestamp += 40;
71 - size = 4096;  
72 - data = (char*)malloc(4096); 80 + int size = 4096;
  81 + char* data = (char*)malloc(4096);
73 82
74 if (srs_write_packet(rtmp, type, timestamp, data, size) != 0) { 83 if (srs_write_packet(rtmp, type, timestamp, data, size) != 0) {
75 goto rtmp_destroy; 84 goto rtmp_destroy;