Raspberry Pi_Kor_22.1.6 동영상을 외부 컴퓨터에서 보기


Published Book on Amazon


All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1
All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2


출판된 한글판 도서


최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상)
최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하)


Original Book Contents


22.1.6  동영상을 외부 컴퓨터에서 보기  

 

여기서는 Raspberry Pi에서 촬영한 동영상을 네트워크를 통하여 외부의 컴퓨터에서 조회하는 방법에 대해서 이야기한다.

 

네트워크를 통해서 동영상을 조회하는 방법에는 여러 가지 방법이 있겠지만, 여기서는 <Netcat> 프로그램을 이용하는 방법을 설명하기로 한다.

 

22.1.6.1    동영상 자료 송신/수신의 기본 framework

 

여기서는 동영상 송신, 수신을 위해서 다음과 같은 체계를 이용하고자 한다.


 

간략하게 설명하면, Raspberry Pi camera로 촬영한 자료를 <Netcat> 프로그램으로 넘겨주면, <Netcat> 프로그램은 이 자료를 network을 통하여 지정한 컴퓨터로 전송하게 된다. 그러면 remote computer에 있는 <Netcat> 프로그램이 해당 자료를 받아서 <Mplayer> 프로그램으로 전달하고, <Mplayer> 프로그램이 동영상을 받아서 상영하도록 한다.

 

이를 위해서는 remoter computer <Netcat> 프로그램과 <Mplayer> 프로그램이 설치되어 있거나 이들과 동일한 역할을 하는 다른 프로그램이 remoter computer에 설치되어 있어야 한다.  

 


 

22.1.6.2    <Netcat> 프로그램으로 네트워크 동영상 송수신

 

<Netcat> 프로그램은 시스템 관리자들이 많은 사용하는 도구로 여러 가지 많은 기능을 가지고 있다. 네트워크에 있는 특정 컴퓨터들 사이에 어떤 자료를 전송하고 수신하기 위해서 <Netcat> 명령을 사용할 수 있다.

 

   네트워크에서의 자료 송신

 

네트워크에서 자료를 송신하는 컴퓨터에서는 다음과 같은 형식으로 명령을 실행한다.

 

[명령 형식]

nc  [option]   <receiver IP address>  <port>

 

[명령 개요]

    이명령은 지정된 수신 IP address로 자료를 송신한다.

    user 권한    -- 일반 user.

 

[상세 설명]

    자료의 송신 및 수신은 특정 port를 이용하여 처리되는데, default port"5001"을 사용한다.

 

[주요 option]

-h, --help

Show help.

-l

listen mode netcat를 실행한다. 이때 당연히 target host는 지정하지 않는다.

-p

port를 지정할 때 사용한다. 통상 -l option과 함께 사용한다.

 


 

   네트워크에서의 자료 수신

 

네트워크에서 자료를 수신하는 컴퓨터에서는 다음과 같은 형식으로 명령을 실행한다

 

[명령 형식]

nc  [option]       -p  <port>

 

[명령 개요]

    이 명령은 네트워크를 통하여 지정된 port로 들어오는 자료를 수신한다.

    user 권한    -- 일반 user.

 

[상세 설명]

    자료의 송신 및 수신은 특정 port를 이용하여 처리되는데, default port"5001을 사용한다.

 

[주요 option]

-h, --help

Show help.

-l

listen mode netcat를 실행한다. 이때 당연히 target host는 지정하지 않는다.

-p

port를 지정할 때 사용한다. 통상 -l option과 함께 사용한다.

 


 

22.1.6.3    raspivid 명령으로 Raspberry Pi에서 동영상 전송

 

Raspberry Pi에서는 <Netcat> 프로그램이 기본적으로 설치되어 있어서 특별히 설치할 필요는 없다.

 

Raspberry Pi에서 camera로 촬영한 동영상 stream remoter 컴퓨터로 전송하기 위해서는 Terminal 프로그램에서 다음과 같은 명령을 수행한다

 

[명령 형식]

raspivid  -t  999999  -o -  | nc  <receiver IP address>  5001

 

이 명령은 먼저 "raspivid" 명령으로 Raspberry Pi camera에서 동영상을 연속으로 촬영한다. 동영상은 멈추지 않고 연속해서 촬영을 해야 하므로 시간을 "999999"로 설정하였다. 동영상을 촬영할 때는 필요하면 다른 다양한 option을 지정할 수 있다

 

이렇게 촬영한 동영상은 표준출력으로 보내진 다음, pipe를 통하여 <Netcat> 프로그램으로 전달되고 <Netcat> 프로그램은 remoter에 있는 수신 컴퓨터로 port "5001"을 이용해서 전송하는 것이다.

 

이때 수신자인 remoter computer를 지정하기 위해서 수신자의 IP address를 지정해야 한다.

 


 

22.1.6.4    Linux 컴퓨터에서 동영상 받아 보기

 

운영체제가 Linux인 컴퓨터에서 네트워크를 통해서 동영상 stream을 받아 상영해 보기 위해서 <Netcat> 프로그램과 <Mplayer> 프로그램을 사용하도록 할 것이다. 만일 해당 컴퓨터에 프로그램이 설치되어 있지 않다면 다음과 같이 프로그램을 설치하도록 한다.

 

<Netcat> 프로그램은 다음과 같은 방식으로 설치한다

 

sudo   apt-get   install   netcat

 

<Mplayer> 프로그램은 다음과 같은 방식으로 설치한다

 

sudo   apt-get   install   mplayer

 

프로그램 설치가 완료되면 해당 시스템을 rebooting 하여 정상적으로 작동하는지 확인한다.

 

Raspberry Pi 컴퓨터가 전송한 동영상 파일을 Linux 컴퓨터에서 수신하여 상영해 보기 위해서 다음 명령을 수행한다.

 

nc  -l -p 5001  |  mplayer -fps  31  -cache  1024  -

 

위에서는 먼저 "nc" 명령에 의해 <Netcat> 프로그램이 작동하고, port "5001"로 들어오는 동영상 stream을 받아서 pipe를 통하여 <Mplayer> 프로그램으로 넘겨준다. 그러면 <Mplayer> 프로그램은 수신한 동영상 stream을 이용하여 동영상을 상영하게 되는 것이다.


 

다음은 실제로 Linux computer에서 네트워크를 통하여 동영상을 받아서 실행해 본 사례 화면이다.


 


 

22.1.6.5    MS Windows 컴퓨터에서 동영상 받아 보기

 

여기서는 운영체제가 MS Windows인 컴퓨터에서 동영상 stream을 네트워크를 통해서 받아 상영해 보기 위해서 <Netcat> 프로그램과 <Mplayer> 프로그램을 사용하도록 할 것이다. 만일 해당 컴퓨터에 프로그램이 설치되어 있지 않다면, 다음에서 프로그램을 download하여 설치하도록 한다.

    download MPlayer    -- http://mplayerwin.sourceforge.net/

    download Netcat      -- http://joncraton.org/media/files/nc111nt.zip

-- http://packetstormsecurity.com/files/download/31140/nc.exe

 

프로그램 설치가 완료되면 remote에서 전송되어 온 동영상을 수신하여 재생하기 위해서 Shell 프로그램에서 다음 명령을 수행하도록 한다.

 

[Path]\nc.exe -l -p 5001  |  [Path]\mplayer.exe  -fps 31  -cache  1024  -

 

위 명령을 수행하면 다음과 같이 동영상 파일이 재생되어 나온다.


 

참고로 MS Windows 컴퓨터에서 IP address를 확인하려면 Shell에서 다음과 같이 "ipconfig" 명령을 사용한다.

 

ipconfig


 

22.1.6.6    Mac 컴퓨터에서 동영상 받아 보기

 

Mac 컴퓨터에서는 <Mplayer> 프로그램을 설치해야 한다. 프로그램은 다음과 같이 "port" 명령을 통해서 설치할 수 있다.

 

sudo  port  selfupdate

 

sudo  port  install  mplayer

 

프로그램 설치와 관련하여 추가적인 정보가 필요하면 다음 자료를 참조하기 바란다.

    http://www.mplayerhq.hu/

    http://www.macports.org/

          

프로그램 설치가 완료되면 remote에서 전송되어 온 동영상을 수신하여 재생하기 위해서 Shell 프로그램에서 다음 명령을 수행하도록 한다.

 

nc  -l  -p 5001  |  mplayer -fps 31  -cache  1024  -

 

위 명령을 수행하면 다음과 같이 동영상 파일이 재생되어 나온다.

 



Leave a Reply