본문 바로가기
놀기/잡스러운 것

[bmNVR] LIVE555 (ubuntu 20.04) 빌드

by Hi~ 2023. 8. 30.

목차

 

1. LIVE555 다운로드

busyman@busyman:~/play/bmNVR$ mkdir lib
busyman@busyman:~/play/bmNVR$ cd lib/
busyman@busyman:~/play/bmNVR/lib$ ls
busyman@busyman:~/play/bmNVR/lib$ mkdir LIVE555
busyman@busyman:~/play/bmNVR/lib$ cd LIVE555/
busyman@busyman:~/play/bmNVR/lib/LIVE555$ wget http://www.live555.com/liveMedia/public/live.2023.07.24.tar.gz
--2023-08-12 09:40:33--  http://www.live555.com/liveMedia/public/live.2023.07.24.tar.gz
Resolving www.live555.com (www.live555.com)... 52.8.240.222
Connecting to www.live555.com (www.live555.com)|52.8.240.222|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 689051 (673K) [application/x-gzip]
Saving to: ‘live.2023.07.24.tar.gz’

live.2023.07.24.tar.gz                              100%[==================================================================================================================>] 672.90K   752KB/s    in 0.9s    

2023-08-12 09:40:36 (752 KB/s) - ‘live.2023.07.24.tar.gz’ saved [689051/689051]

 

2. LIVE555 빌드 준비 (./genMakefiles linux)

busyman@busyman:~/play/bmNVR/lib/LIVE555$ tar vfxz live.2023.07.24.tar.gz 
live/
live/liveMedia/
live/groupsock/
live/UsageEnvironment/
live/BasicUsageEnvironment/
live/testProgs/

# 중략

live/liveMedia/include/MIKEY.hh
live/liveMedia/include/SRTPCryptographicContext.hh
live/liveMedia/include/HMAC_SHA1.hh
live/liveMedia/include/HMAC_hash.hh
busyman@busyman:~/play/bmNVR/lib/LIVE555$
busyman@busyman:~/play/bmNVR/lib/LIVE555$
busyman@busyman:~/play/bmNVR/lib/LIVE555$ cd live/
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$ ls
BasicUsageEnvironment     config.cris-axis-linux-gnu  config.linux                        config.macosx-catalina    config.uClinux       genWindowsMakefiles.cmd  proxyServer
config.armeb-uclibc       config.cygwin               config.linux-64bit                  config.macosx-no-openssl  configure            groupsock                README
config.armlinux           config.cygwin-for-vlc       config.linux-gdb                    config.mingw              COPYING              hlsProxy                 testProgs
config.avr32-linux        config.freebsd              config.linux-gdb-sanitize           config.openbsd            COPYING.LESSER       liveMedia                UsageEnvironment
config.bfin-linux-uclibc  config.freebsd-no-openssl   config.linux-no-openssl             config.qnx4               fix-makefile         Makefile.head            win32config
config.bfin-uclinux       config.iphoneos             config.linux-with-shared-libraries  config.solaris-32bit      genMakefiles         Makefile.tail            win32config.Borland
config.bsplinux           config.iphone-simulator     config.macosx-bigsur                config.solaris-64bit      genWindowsMakefiles  mediaServer              WindowsAudioInputDevice
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$ ./genMakefiles linux

 

3. LIVE555 빌드

1) 빌드는 make 명령으로 간단히 할 수 있다.

busyman@busyman:~/play/bmNVR/lib/LIVE555/live$ make

# 중략

c++ -c -Iinclude -I../UsageEnvironment/include -I../groupsock/include -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -Wall -DBSD=1   BasicUsageEnvironment.cpp
c++ -c -Iinclude -I../UsageEnvironment/include -I../groupsock/include -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -Wall -DBSD=1   BasicTaskScheduler0.cpp
c++ -c -Iinclude -I../UsageEnvironment/include -I../groupsock/include -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -Wall -DBSD=1   BasicTaskScheduler.cpp
BasicTaskScheduler.cpp: In member function ‘virtual void BasicTaskScheduler::SingleStep(unsigned int)’:
BasicTaskScheduler.cpp:191:40: error: ‘struct std::atomic_flag’ has no member named ‘testif (fTriggersAwaitingHandling[i].test()) {
                                        ^~~~
make[1]: *** [Makefile:41: BasicTaskScheduler.o] Error 1
make[1]: Leaving directory '/home/busyman/play/bmNVR/lib/LIVE555/live/BasicUsageEnvironment'
make: *** [Makefile:38: all] Error 2
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$

 

2) 그런데 빌드 실패, 해결 방법은 여러 가지 겠지만 일단 아래와 같이 config.linux 수정한다. 만약 다른 에러가 발생했다면 구글 검색을 통해 해결해 보자.

 - COMPILE_OPTS 에 "-DNO_STD_LIB" 추가

busyman@busyman:~/play/bmNVR/lib/LIVE555/live$ cat config.linux
COMPILE_OPTS =		$(INCLUDES) -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DNO_STD_LIB
C =			c
C_COMPILER =		cc
C_FLAGS =		$(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
CPP =			cpp
CPLUSPLUS_COMPILER =	c++
CPLUSPLUS_FLAGS =	$(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
OBJ =			o
LINK =			c++ -o
LINK_OPTS =		-L. $(LDFLAGS)
CONSOLE_LINK_OPTS =	$(LINK_OPTS)
LIBRARY_LINK =		ar cr 
LIBRARY_LINK_OPTS =	
LIB_SUFFIX =			a
LIBS_FOR_CONSOLE_APPLICATION = -lssl -lcrypto
LIBS_FOR_GUI_APPLICATION =
EXE =
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$ ./genMakefiles linux
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$ make
# 중략
make[1]: Entering directory '/home/busyman/play/bmNVR/lib/LIVE555/live/hlsProxy'
c++ -c -I../UsageEnvironment/include -I../groupsock/include -I../liveMedia/include -I../BasicUsageEnvironment/include -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DNO_STD_LIB -Wall -DBSD=1   live555HLSProxy.cpp
c++ -olive555HLSProxy -L.  live555HLSProxy.o ../liveMedia/libliveMedia.a ../groupsock/libgroupsock.a ../BasicUsageEnvironment/libBasicUsageEnvironment.a ../UsageEnvironment/libUsageEnvironment.a -lssl -lcrypto
make[1]: Leaving directory '/home/busyman/play/bmNVR/lib/LIVE555/live/hlsProxy'

For more information about this source code (including your obligations under the LGPL), please see our FAQ at http://live555.com/liveMedia/faq.html
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$

busyman@busyman:~/play/bmNVR/lib/LIVE555/live$ make distclean 
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$ ./genMakefiles linux
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$ make
# 중략
make[1]: Leaving directory '/home/busyman/play/bmNVR/lib/LIVE555/live/proxyServer'
cd hlsProxy ; make
make[1]: Entering directory '/home/busyman/play/bmNVR/lib/LIVE555/live/hlsProxy'
c++ -c -I../UsageEnvironment/include -I../groupsock/include -I../liveMedia/include -I../BasicUsageEnvironment/include -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DNO_STD_LIB -Wall -DBSD=1   live555HLSProxy.cpp
c++ -olive555HLSProxy -L.  live555HLSProxy.o ../liveMedia/libliveMedia.a ../groupsock/libgroupsock.a ../BasicUsageEnvironment/libBasicUsageEnvironment.a ../UsageEnvironment/libUsageEnvironment.a -lssl -lcrypto
make[1]: Leaving directory '/home/busyman/play/bmNVR/lib/LIVE555/live/hlsProxy'

For more information about this source code (including your obligations under the LGPL), please see our FAQ at http://live555.com/liveMedia/faq.html
busyman@busyman:~/play/bmNVR/lib/LIVE555/live$

 

4. LIVE555 테스트

빌드가 되었으니 잘되었는지 확인해 보자. LIVE555는 testProgs 하위에 여러 가지 예제를 제공하는데 우리는 NVR 제작이 목적이므로 testRTSPClient로 테스트한다. 빌드는 되었지만 라이브러리 호환으로 인해 실행이 안될 수 있으니 일단, 실행해 보자.

busyman@busyman:~/play/bmNVR/lib/LIVE555/live/testProgs$ ./testRTSPClient
Usage: ./testRTSPClient <rtsp-url-1> ... <rtsp-url-N>
	(where each <rtsp-url-i> is a "rtsp://" URL)

 

1) rtsp 서버 준비

rtsp 서버를 준비하는 것도 귀찮은 일이다. IP CAM이 있다면 가장 편한 방법이고 없다면 VLC가 그나마 쉬운 방법이다.

 

2) testRTSPClient 실행

 - rtsp 서버가 준비되었다면 서버를 시작하고 testRTSPClient를 실행해 보자.

 - 정상 동작이 되었다면 아래와 같이 스트림에 대한 정보가 표시되고 수신된 데이터 정보가 표시된다. rtsp에 사용한 영상이 video만 있어 video/H264 만 표시된다.

busyman@busyman:~/play/bmNVR/lib/LIVE555/live/testProgs$ ./testRTSPClient rtsp://127.0.0.1:8554/test
Created new TCP socket 3 for connection
Connecting to 127.0.0.1, port 8554 on socket 3...
...remote connection opened
Sending request: DESCRIBE rtsp://127.0.0.1:8554/test RTSP/1.0
CSeq: 2
User-Agent: ./testRTSPClient (LIVE555 Streaming Media v2023.07.24)
Accept: application/sdp


Received 204 new bytes of response data.
Have received 204 total bytes of a DESCRIBE RTSP response; awaiting 424 bytes more.
Received 424 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
Server: VLC/3.0.18
Date: Sat, 12 Aug 2023 12:50:05 GMT
Content-Type: application/sdp
Content-Base: rtsp://127.0.0.1:8554/test
Content-Length: 424
Cache-Control: no-cache
Cseq: 2

v=0
o=- 16753951905447302629 16753951905447302629 IN IP4 busyman
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=tool:vlc 3.0.18
a=recvonly
a=type:broadcast
a=charset:UTF-8
a=control:rtsp://127.0.0.1:8554/test
m=video 0 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=4d001f;sprop-parameter-sets=Z00AH5Y1QKALdNwEBAQI,aO48gA==;
a=control:rtsp://127.0.0.1:8554/test/trackID=1

[URL:"rtsp://127.0.0.1:8554/test"]: Got a SDP description:
v=0
o=- 16753951905447302629 16753951905447302629 IN IP4 busyman
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=tool:vlc 3.0.18
a=recvonly
a=type:broadcast
a=charset:UTF-8
a=control:rtsp://127.0.0.1:8554/test
m=video 0 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=4d001f;sprop-parameter-sets=Z00AH5Y1QKALdNwEBAQI,aO48gA==;
a=control:rtsp://127.0.0.1:8554/test/trackID=1

[URL:"rtsp://127.0.0.1:8554/test"]: Initiated the "video/H264" subsession (client ports 57720-57721)
Sending request: SETUP rtsp://127.0.0.1:8554/test/trackID=1 RTSP/1.0
CSeq: 3
User-Agent: ./testRTSPClient (LIVE555 Streaming Media v2023.07.24)
Transport: RTP/AVP;unicast;client_port=57720-57721


Received 270 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
Server: VLC/3.0.18
Date: Sat, 12 Aug 2023 12:50:05 GMT
Transport: RTP/AVP/UDP;unicast;client_port=57720-57721;server_port=55001-55002;ssrc=93B63C53;mode=play
Session: 97b0cc940409c97;timeout=60
Content-Length: 0
Cache-Control: no-cache
Cseq: 3


[URL:"rtsp://127.0.0.1:8554/test"]: Set up the "video/H264" subsession (client ports 57720-57721)
[URL:"rtsp://127.0.0.1:8554/test"]: Created a data sink for the "video/H264" subsession
Sending request: PLAY rtsp://127.0.0.1:8554/test RTSP/1.0
CSeq: 4
User-Agent: ./testRTSPClient (LIVE555 Streaming Media v2023.07.24)
Session: 97b0cc940409c97
Range: npt=0.000-


Received 269 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 200 OK
Server: VLC/3.0.18
Date: Sat, 12 Aug 2023 12:50:05 GMT
RTP-Info: url=rtsp://127.0.0.1:8554/test/trackID=1;seq=52713;rtptime=232270630
Range: npt=86.381167-
Session: 97b0cc940409c97;timeout=60
Content-Length: 0
Cache-Control: no-cache
Cseq: 4


[URL:"rtsp://127.0.0.1:8554/test"]: Started playing session...
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 6399 bytes.	Presentation time: 1691844605.970419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5230 bytes.	Presentation time: 1691844606.003419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4814 bytes.	Presentation time: 1691844606.037419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 15 bytes.	Presentation time: 1691844606.070419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4 bytes.	Presentation time: 1691844606.070419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5 bytes.	Presentation time: 1691844606.070419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 46432 bytes.	Presentation time: 1691844606.070419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4848 bytes.	Presentation time: 1691844606.103419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4616 bytes.	Presentation time: 1691844606.137419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4629 bytes.	Presentation time: 1691844606.170419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4620 bytes.	Presentation time: 1691844606.203419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4911 bytes.	Presentation time: 1691844606.236419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4665 bytes.	Presentation time: 1691844606.270419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4390 bytes.	Presentation time: 1691844606.303419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4923 bytes.	Presentation time: 1691844606.337419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4802 bytes.	Presentation time: 1691844606.370419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4701 bytes.	Presentation time: 1691844606.403419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4665 bytes.	Presentation time: 1691844606.436419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4890 bytes.	Presentation time: 1691844606.470419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4749 bytes.	Presentation time: 1691844606.503419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4830 bytes.	Presentation time: 1691844606.536419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4830 bytes.	Presentation time: 1691844606.570419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4747 bytes.	Presentation time: 1691844606.603419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4648 bytes.	Presentation time: 1691844606.636419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4827 bytes.	Presentation time: 1691844606.670419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5137 bytes.	Presentation time: 1691844606.703419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4780 bytes.	Presentation time: 1691844606.736419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 6438 bytes.	Presentation time: 1691844606.770419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5161 bytes.	Presentation time: 1691844606.803419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5151 bytes.	Presentation time: 1691844606.836419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5303 bytes.	Presentation time: 1691844606.870419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 15 bytes.	Presentation time: 1691844606.903419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4 bytes.	Presentation time: 1691844606.903419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5 bytes.	Presentation time: 1691844606.903419!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 46219 bytes.	Presentation time: 1691844606.903419!

 

3) 테스트 프로그램을 약간 수정해 보자. 아래와 같이 수신한 데이터의 첫 4byte를 출력해 보면 NAL packet 단위로 수신되는 것을 확인할 수 있다. 188byte 단위로 전송되지만 LIVE555에서 frame 단위로 만들어 줌으로써 뒷 단 처리의 수고를 덜 수 있다.

void DummySink::afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes,
                                  struct timeval presentationTime, unsigned /*durationInMicroseconds*/) {
  // We've just received a frame of data.  (Optionally) print out information about it:
#ifdef DEBUG_PRINT_EACH_RECEIVED_FRAME
  if (fStreamId != NULL) envir() << "Stream \"" << fStreamId << "\"; ";
  envir() << fSubsession.mediumName() << "/" << fSubsession.codecName() << ":\tReceived " << frameSize << " bytes";
  if (numTruncatedBytes > 0) envir() << " (with " << numTruncatedBytes << " bytes truncated)";

  char uHexDump[(4*4)+1];
  sprintf(uHexDump, "[%02X][%02X][%02X][%02X]", fReceiveBuffer[0], fReceiveBuffer[1], fReceiveBuffer[2], fReceiveBuffer[3]);
  envir() << ".\t" << uHexDump;

  char uSecsStr[6+1]; // used to output the 'microseconds' part of the presentation time
  sprintf(uSecsStr, "%06u", (unsigned)presentationTime.tv_usec);
  envir() << "\tPresentation time: " << (int)presentationTime.tv_sec << "." << uSecsStr;
  if (fSubsession.rtpSource() != NULL && !fSubsession.rtpSource()->hasBeenSynchronizedUsingRTCP()) {
    envir() << "!"; // mark the debugging output to indicate that this presentation time is not RTCP-synchronized
  }
#ifdef DEBUG_PRINT_NPT
  envir() << "\tNPT: " << fSubsession.getNormalPlayTime(presentationTime);
#endif
  envir() << "\n";
#endif

  // Then continue, to request the next frame of data:
  continuePlaying();
}

 

[URL:"rtsp://127.0.0.1:8554/test"]: Started playing session...
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5004 bytes.	[61][E0][C0][00]	Presentation time: 1691847432.768619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4894 bytes.	[61][E0][E0][00]	Presentation time: 1691847432.801619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4827 bytes.	[61][E1][00][01]	Presentation time: 1691847432.835619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4956 bytes.	[61][E1][20][01]	Presentation time: 1691847432.868619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5509 bytes.	[61][E1][40][01]	Presentation time: 1691847432.901619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4724 bytes.	[61][E1][60][01]	Presentation time: 1691847432.935619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5130 bytes.	[61][E1][80][01]	Presentation time: 1691847432.968619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5697 bytes.	[61][E1][A0][01]	Presentation time: 1691847433.001619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5017 bytes.	[61][E1][C0][01]	Presentation time: 1691847433.035619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5282 bytes.	[61][E1][E0][01]	Presentation time: 1691847433.068619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5482 bytes.	[61][E2][00][02]	Presentation time: 1691847433.101619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5520 bytes.	[61][E2][20][02]	Presentation time: 1691847433.135619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5073 bytes.	[61][E2][40][02]	Presentation time: 1691847433.168619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5162 bytes.	[61][E2][60][02]	Presentation time: 1691847433.201619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5313 bytes.	[61][E2][80][02]	Presentation time: 1691847433.235619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 7349 bytes.	[61][E2][A0][02]	Presentation time: 1691847433.268619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5122 bytes.	[61][E2][C0][02]	Presentation time: 1691847433.301619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5632 bytes.	[61][E2][E0][02]	Presentation time: 1691847433.335619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5126 bytes.	[61][E3][00][03]	Presentation time: 1691847433.368619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 15 bytes.	[67][4D][00][1F]	Presentation time: 1691847433.401619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4 bytes.	[68][EE][3C][80]	Presentation time: 1691847433.401619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5 bytes.	[06][E5][01][30]	Presentation time: 1691847433.401619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 46604 bytes.	[65][B8][00][00]	Presentation time: 1691847433.401619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4927 bytes.	[61][E0][20][00]	Presentation time: 1691847433.435619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4634 bytes.	[61][E0][40][00]	Presentation time: 1691847433.468619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4855 bytes.	[61][E0][60][00]	Presentation time: 1691847433.501619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4647 bytes.	[61][E0][80][00]	Presentation time: 1691847433.535619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4863 bytes.	[61][E0][A0][00]	Presentation time: 1691847433.568619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 4885 bytes.	[61][E0][C0][00]	Presentation time: 1691847433.601619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5214 bytes.	[61][E0][E0][00]	Presentation time: 1691847433.635619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5074 bytes.	[61][E1][00][01]	Presentation time: 1691847433.668619!
Stream "rtsp://127.0.0.1:8554/test"; video/H264:	Received 5030 bytes.	[61][E1][20][01]	Presentation time: 1691847433.701619!

 

댓글