Skip to content

Commit 714b78b

Browse files
committed
fixbug
1 parent d708f18 commit 714b78b

9 files changed

Lines changed: 101 additions & 22 deletions

File tree

‎Makefile‎

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ OBJS +=$(patsubst %c,%o,$(filter %c ,$(SOURCES)))
3535

3636
TARGET :=live
3737

38-
all: vlserver vlrtmp vlsave
38+
all: vlserver vlrtmp vlsave recorder
3939

4040
live: $(OBJS)
4141
$(CXX) $(LIBS_DIR) -o $@ $(OBJS) $(LIBS)
@@ -44,10 +44,13 @@ vlserver: $(OBJS)
4444
$(CXX) $(LIBS_DIR) -o $@ $(vlserver) $(base_module) $(carmer_module) $(media_module) $(server_module) -lpthread -lvencoder -lPocoXML -lPocoJSON -lPocoUtil -lPocoNet -lPocoFoundation -ldl -lrt
4545

4646
vlrtmp: $(OBJS)
47-
$(CXX) $(LIBS_DIR) -o $@ $(vlrtmp) $(base_module) $(io_module) $(h264_module) $(flv_module) $(lang_module) $(encode_module) -lrtmp -lPocoXML -lPocoJSON -lPocoUtil -lPocoNet -lPocoFoundation -ldl
48-
47+
$(CXX) $(LIBS_DIR) -o $@ $(vlrtmp) $(base_module) $(io_module) $(h264_module) $(flv_module) $(lang_module) $(encode_module) -lpthread -lrtmp -lPocoXML -lPocoJSON -lPocoUtil -lPocoNet -lPocoFoundation -ldl -lrt
48+
4949
vlsave: $(OBJS)
50-
$(CXX) $(LIBS_DIR) -o $@ $(vlsave) $(base_module) $(h264_module) -lrtmp -lPocoXML -lPocoJSON -lPocoUtil -lPocoNet -lPocoFoundation -ldl
50+
$(CXX) $(LIBS_DIR) -o $@ $(vlsave) $(base_module) $(h264_module) -lpthread -lrtmp -lPocoXML -lPocoJSON -lPocoUtil -lPocoNet -lPocoFoundation -ldl -lrt
51+
52+
recorder: $(OBJS)
53+
$(CXX) $(LIBS_DIR) -o $@ $(recorder) $(base_module) $(carmer_module) $(media_module) -lpthread -lvencoder -ldl -lrt
5154

5255
help:
5356

@@ -56,9 +59,10 @@ install:
5659
cp vlserver $(prefix)/vlserver
5760
cp vlrtmp $(prefix)/vlrtmp
5861
cp vlsave $(prefix)/vlsave
62+
cp recorder $(prefix)/recorder
5963

6064
clean:
61-
rm -rf $(OBJS) vlserver vlrtmp vlsave
65+
rm -rf $(OBJS) vlserver vlrtmp vlsave recorder
6266

6367
%.o:%.c
6468
$(CC) $(CFLAGS) -c $< -o $@

‎src/base/utils.c‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,15 @@ long long current_time()
7878
return t;
7979
}
8080

81+
long long current_time_m()
82+
{
83+
struct timeval t_start;
84+
//get start time
85+
gettimeofday(&t_start, 0);
86+
long long t = ((long long)t_start.tv_sec) ;
87+
return t;
88+
}
89+
8190
#ifdef __cplusplus
8291
}
8392
#endif /* __cplusplus */

‎src/base/utils.h‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@ void YUV422To420(unsigned char yuv422[], unsigned char yuv420[], unsigned int wi
8484
*/
8585
long long current_time();
8686

87+
/**
88+
* 当前的秒
89+
*/
90+
long long current_time_m();
91+
8792
#ifdef __cplusplus
8893
}
8994
#endif /* __cplusplus */

‎src/exe/Makefile‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
vlserver = src/exe/vlserver.o
22
vlrtmp = src/exe/vlrtmp.o
33
vlsave = src/exe/vlsave.o
4+
recorder = src/exe/recorder.o
45

5-
SOURCES += src/exe/vlserver.cpp src/exe/vlrtmp.cpp src/exe/vlsave.cpp
6+
SOURCES += src/exe/vlserver.cpp src/exe/vlrtmp.cpp src/exe/vlsave.cpp src/exe/recorder.c

‎src/exe/recorder.c‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* recorder.c
3+
*
4+
* Created on: Jan 28, 2015
5+
* Author: ouyangfeng
6+
*/
7+
#include "base/utils.h"
8+
#include "media/videorecorder.h"
9+
10+
long long t;
11+
int fps = 0;
12+
13+
void cdear(int type, void* cookie, void* data)
14+
{
15+
if (current_time_m() == t)
16+
{
17+
fps++;
18+
}
19+
else
20+
{
21+
printf("fps:%d\n", fps);
22+
fps = 0;
23+
t = current_time_m();
24+
}
25+
26+
}
27+
28+
void testCamera(void)
29+
{
30+
Video_Recorder* recorder = create_video_recorder(640, 480);
31+
recorder->setDataCallBack(recorder, (void*) cdear, (void*) cdear);
32+
start_video_recorder(recorder);
33+
stop_video_recorder(recorder);
34+
free(recorder);
35+
recorder = NULL;
36+
}
37+
38+
int main(int argc, char **argv)
39+
{
40+
t = current_time_m();
41+
testCamera();
42+
}
43+

‎src/exe/vlrtmp.cpp‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ using namespace std;
1616

1717
int main(int argc, char **argv)
1818
{
19-
if (argc < 4)
19+
if (argc < 3)
2020
{
21-
cout << "Uage:" << argv[0] << " <src server name > <src server port > <rtmp server>" << endl;
21+
cout << "Uage:" << argv[0] << " <src server> <rtmp server>" << endl;
2222
exit(0);
2323
}
24-
NetH264Reader reader(argv[1], atoi(argv[2]));
24+
NetH264Reader reader(argv[1]);
2525

26-
RTMPOutPutStream output(argv[3], false, 25);
26+
RTMPOutPutStream output(argv[2], false, 25);
2727
FLVEncoder encoder(&reader, &output);
2828
encoder.encoder();
2929
}

‎src/exe/vlsave.cpp‎

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,37 +8,54 @@
88
#include <stdio.h>
99
#include <iostream>
1010

11+
#include "Poco/LocalDateTime.h"
12+
1113
#include "h264/NetH264Reader.h"
14+
#include "base/utils.h"
1215

1316
using namespace std;
17+
using namespace Poco;
1418

1519
int main(int argc, char **argv)
1620
{
1721

18-
if (argc < 2)
22+
if (argc < 3)
1923
{
20-
cout << "Uage:" << argv[0] << " <src server name > <src server port > <save file >" << endl;
24+
cout << "Uage:" << argv[0] << " <src server > <save file >" << endl;
2125
exit(0);
2226
}
2327

24-
NetH264Reader reader(argv[1], atoi(argv[2]));
28+
NetH264Reader reader(argv[1]);
2529
FILE *out;
2630

27-
cout << "connect server " << argv[1] << ":" << argv[2] << endl;
31+
cout << "connect server " << argv[1] << endl;
2832
if (reader.open())
2933
{
30-
cout << "connect server " << argv[1] << ":" << argv[2] << " sucess" << endl;
31-
out = fopen(argv[3], "wb");
34+
cout << "connect server " << argv[1] << " sucess" << endl;
35+
out = fopen(argv[2], "wb");
3236
if (out)
3337
{
3438

3539
H264NALU *nalu = 0;
36-
char naluHead[] = { 0x0, 0x0, 0x0, 0x1 };
40+
char naluHead[] =
41+
{ 0x0, 0x0, 0x0, 0x1 };
42+
int time = LocalDateTime().second();
43+
int fps = 0;
3744
while (1)
3845
{
3946
nalu = reader.readH264();
4047
if (nalu != 0)
4148
{
49+
if (LocalDateTime().second() == time)
50+
{
51+
fps++;
52+
}
53+
else
54+
{
55+
cout << LocalDateTime().second() <<"recevie fps:" << fps << endl;
56+
fps = 0;
57+
time = LocalDateTime().second();
58+
}
4259
fwrite(naluHead, 4, 1, out);
4360
fwrite(nalu->getData(), nalu->getLength(), 1, out);
4461
}
@@ -52,12 +69,12 @@ int main(int argc, char **argv)
5269
}
5370
else
5471
{
55-
cout << "open file " << argv[3] << " error" << endl;
72+
cout << "open file " << argv[2] << " error" << endl;
5673
}
5774
}
5875
else
5976
{
60-
cout << "connect server " << argv[1] << ":" << argv[2] << " fail" << endl;
77+
cout << "connect server " << argv[1] << " fail" << endl;
6178
}
6279

6380
}

‎src/h264/NetH264Reader.cpp‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
using namespace Poco;
1111
using namespace Poco::Net;
1212

13-
NetH264Reader::NetH264Reader(char* host, unsigned short port) :
14-
address(string(host), port), head(12), nalu(4)
13+
NetH264Reader::NetH264Reader(char *host) :
14+
address(string(host)), head(12), nalu(4)
1515
{
1616
}
1717

‎src/h264/NetH264Reader.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class NetH264Reader: public H264Reader
3636
long long getHeadTime();
3737

3838
public:
39-
NetH264Reader(char*, unsigned short);
39+
NetH264Reader(char*);
4040
virtual ~NetH264Reader();
4141
virtual bool close();
4242
virtual bool open();

0 commit comments

Comments
 (0)