ffmpeg using on Windows 10 (2018.08.23)




ffmpeg은 강력한 encoder/decoder이기 때문에 많은 곳에 사용된다. 

하지만 GUI 에서의 사용의 제한으로 인해 command line으로만 사용이 가능하다. (windows key +r  -> cmd)


물론 커맨드에 익숙치 않은 사용자라면 다소 복잡하고 어렵게 느껴질 수 있지만 몇 번 사용하다보면 금방 익숙해질거라 생각한다. 


1. Installation

 1) 아래의 사이트에 들어가서 자신의  Architecture에 맞는 파일을 다운 받는다.

    https://ffmpeg.org/download.html        

   (Linking 옵션은 'static' 디폴트로 설정 되어 있는 걸 선택하면 된다. )


 2)  다운받은 .zip file의 압축을 풀기 위한 폴더를 생성한다.  

   이 때 폴더의 위치는 가급적 C:\Program Files\ffmpeg 에 만드는걸 추천한다.

   ffmpeg 폴더에 다운 받은 파일의 압축을 풀면 새로운 폴더가 생성되고 그 안에 3개의 폴더 
   (bin,doc,presets)와 2개의 텍스트 파일(LICENSE,README)이 있는데 그 폴더의 파일들을 ffmpeg 폴더로 옮긴다.  


 3) bin 폴더에 들어가면 ffmpeg.exe 파일이 있을텐데 더블클릭해서 실행해보자.

  당연하게 아무일도 일어나지 않을것이다. 앞서 말한바와 같이 커맨드라인으로만 실행할 수 있다.

  이제 설치를 마무리 하기 위해 아래의 목록을 순차적으로 진행한다.

   - 바탕화면에 있는 내 컴퓨터 아이콘을 오른쪽 클릭하여 속성으로 들어간다.

   - 왼쪽상단에 있는 고급 시스템 설정을 클릭

   - 상단의 다섯개 탭 중 고급 탭 클릭 후 환경변수를 클릭

   - 환경 변수 창에서 Path 선택 후 편집 클릭

   - 환경 변수 편집 창에서 오른쪽 상단에 있는 새로만들기 클릭

   - ffmpeg.exe 파일이 포함된 폴더의 경로를 작성 후 확인 버튼 

    예) C:\Program Files\ffmpeg\bin

   - 띄워 놓은 모든창은 확인 눌러서 닫기






2. ffmpeg 사용하기


  이제 ffmpeg 설치는 끝났습니다. 사용하는 방법에 대해서 간단히 설명드리도록 하겠습니다. 

 커맨드 창(명령 프롬프트)을 띄워야겠죠? 윈도우키 + r 를 누르면 실행 창이 뜨는데 거기서 cmd라고 적고 엔터를 누르시면 됩니다. 


 명령 프롬프트를 작업할 파일이 있는 곳으로 경로를 바꿔줍니다. 

ex) 문서 폴더에 작업 파일이 있는 경우, C:\Users\user\Documents

파일이 있는 곳으로 경로를 옮기셨으면 아래와 같이 명령 프롬프트에 작성해 봅니다. 


ffmpeg -i video.mp4 -vn -ar 44100 -ac 1 -b:a 32k -f mp3 audio.mp3


그럼 짜잔! 하고 해당 폴더에 audio.mp3 파일이 생성되었을 겁니다. 그럼 이제 명령어의 해당 변수들이 무슨 의민지 설명해 드리겠습니다. 


-i video.mp4 : 인풋 파일의 이름이 video.mp4

-vn : 비디오 스트림 버리기(?) (=Leave out the video stream)

-ar 44100 : 오디오 resolution(해상도)을 44100Hz로 설정

-ac 1 : 오디오 채널을 1로 설정(=모노)

-b:a 32k : 오디오 비트레이트를 32kbps로 설정

-f mp3 : mp3로 변환, 만약에 해당 명령어를 사용하지 않으면 ffmpeg이 출력 파일 확장자를 보고 자동으로 설정함

audio.mp3 : 출력 파일 이름




좀 더 자세한 사용방법은 갓구글에게 물어보고 하나씩 배워 가도록 하자. 


<18.08.24 추가>

-r 30 -vcodec mpeg2video -b:v 18.4M  -f mpegts jFla.ts

-r 30 : fps를 30으로 설정

-vcode mpeg2video : mpeg2video 비디오 코덱 사용

-b:v 18.4M : 비디오 비트레이트를 18.4M로 설정

-f mpegts : 파일 포맷을 mpegts로 설정(mpegts = mpeg형식의 .ts(transport streaming)파일)



Think RPI(http://thinkrpi.wordpress.com/)라는 외국 블로그의 글을 바탕으로 적었습니다.



#2. OpenCV + Pi Cam을 이용한 Face recognition(detection)


지난 시간에는 (사실 불과 몇 분전) 파이카메라를 사용하기 위한 기본적인 초기 설정에 대해서 알려드렸는데요. 이번시간에는 본격적으로 어떻게 사용해야 하고 어떻게 프로그래밍을 해야 하고 어떻게 설치하고 등등등

잡다한 것을 알려드릴 겁니다. 그리고 생각보다 똑같이 보고 따라하는데도 불구하고 분명히 !!!!!!! 에러가 똮 ! 하고 발생할 수도 있으니 미리 적당한 긴장감과 매의눈을 갖고 천천히 따라해보시길 바라겠습니다.


MMAL library 와 raspivid/rapistill source code 는 Userland 폴더에서 다운 받아 올 수 있습니다. 또한 OpenCV를 이용한 무언가를 하기 이전에 전체 패키지를 컴파일 하는게 필요합니다.

라고 영어로 적혀있네요...


일단 제일 먼저 위에서 말한 source code를 가져오도록 합시다. 뭐 누구는 X윈도우를 들어가서 미도리를 켜서 홈페이지를 들어가서 다운받고 받고 뭐 하는데... 사실 느려요.. X윈도우 자체도 느리고 미도리도 느리고, 뭐 하나 빠른게 없으니까...


순서대로 아래 명령어를 타이핑 합니다.

sudo su
cd /opt/vc
git clone git://github.com/raspberrypi/userland.git


여기까지 하셨으면 /opt/vc 디렉토리 안에 userland.git 압축 파일이 다운받아 집니다.

그럼 이걸 이제 압축을 풀어야 겠죠 ?

압축을 푸시면 userland-master라는 디렉토리가 /opt/vc 안에 생성될겁니다.

여기서 주의 ! userland-master폴더 안에 userland라는 폴더가 있는데 저희가 필요한 건 이 userland 폴더 입니다.

이게 뭔 개소리냐... 그냥 쓰면 되지.. 라고 하실 수도 있는데, 여기 블로그 주인이 모든 명령어 및 디렉토리 출처를 userland라고 설정을 해놨는데... 정작 본인은 이러한 디렉토리명(userland-master)에 대해서 언급하고 있지 않기 때문에 신경쓰지 않고 그냥 넘어가버리게 되면 조금 뒤에서 엄청난 오류를 만나실 수 있습니다.


즉! userland-master안에 있는 userland폴더를 그대로 잘라내기 해서 /opt/vc 디렉토리 안에다가 고히 모셔 둡니다. (아무것도 없는 userland-master폴더는 지우셔도 됩니다.)


여기까지 다 하셨으면, 다시 터미널 창으로 돌아와서


cd /opt/vc/userland 


sudo sed -i 's/if (DEFINED CMAKE_TOOLCHAIN_FILE)/if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)/g' makefiles/cmake/arm-linux.cmake


라고 치시면 됩니다. 이때 g' makefiles/cmake/~ 이 부분은 쭉 연결되는거니까 참고하세요 ! 

(즉, ~/if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)/g' makefiles/~ 라고 이어서 치시면 됩니다.)


여기까지 아무탈 없이 오셨다면 최소한 제가 겪었던 삽질은 안하신 겁니다 ㅠㅠ 


그 다음은 userland 디렉토리 안에 build라는 디렉토리를 만들 차례 입니다.

sudo mkdir build 

cd build

sudo cmake -DCMAKE_BUILD_TYPE=Release .. (시간이 좀 걸려요)

(이 때, 많은 분들이 에러가 나실겁니다 !!! 왜냐.. cmake가 안깔려있기 떄문이죠, 그런데 이 글을 작성한 분이 이 부분에 대해서 언급을 전혀 안하셔서 많은 분들이 이 부분에서 진도가 안나가는 경우가 종종 있었습니다.

혹시, 이 부분에서 에러가 나신 분들은 아래와 같은 명령어를 실행시켜 주세요

cd

sudo apt-get install cmake

이렇게 해서 cmake인스톨이 끝나셨다면 이어서 아래 명령어를 쭉 ~ 치시면 됩니다.)

sudo make                 (시간이 좀 걸려요)

sudo make install        (시간이 좀 걸려요)

라고 명령어를 순서대로 타이핑하시고 실행시키시면 됩니다 ! 


그리고 다시

cd

cd /opt/vc

sudo mkdir bin

cd /opt/vc/bin 

./raspistill -t 3000


여기까지 무사히 완료 되셨으면, 2단계도 끝 !!! 



Think RPI(http://thinkrpi.wordpress.com/)라는 외국 블로그의 글을 바탕으로 적었습니다.



#1. OpenCV + Pi Cam을 이용한 Face recognition(detection)


<라즈베리파이와 파이캠 연결>

-파이카메라와 라즈베리파이를 어떻게 연결해야 되는지는 다들 잘 아실겁니다. 

 그냥 생긴것만 봐도 직관적으로 어느 방향으로 맞춰 넣어야 하는지 아실거라 믿습니다.

 혹시 헷갈리시는 분들을 위해서 말씀드리면. 파이 카메라의 핀이 보이는 부분이 HDMI를 바라보게끔 하고 끼우시면 됩니다.

 그리고 행여, 방향을 반대로 꽂아넣으셨다해도 걱정마세요, 두려워마세요 안고장납니다...

 그냥 조심스럽게 다시 빼서 정방향으로 지긋이 ~ 눌러서 끼워 넣으시면 됩니다.



<파이캠 초기 설정>

http://www.raspberrypi.org/archives/3890


위 링크를 따라 들어가셔서 따라하시면 손쉽게 설정하실 수 있습니다.

위 링크 내용을 간략하게 설명 드리자면, 일단 제일 먼저 업데이트 및 업그레이드를 해야 합니다. 


sudo apt-get update

sudo apt-get upgrade


이 두가지 명령어를 순차적으로 실행하시면 됩니다. 그리고 다음으로는 


sudo raspi-config 명령어를 똮!!! 하고 치시면 

윈도우의 BIOS화면과 비슷한 스멜을 풍기는 블루스크린이 뜨게 됩니다.(에러아님, 걱정 노노)


실제로 실행시켜보시면 아시겠지만 사이트에 나와있는 동일한 메뉴 모양이 아닐 수도 있습니다. (버전에 따라 조금 다른 듯)

이것도 역시 걱정 ㄴㄴㄴ 




저 같은 경우엔 5번 메뉴에 똮 하니 Enable Camera라는 옵션이 있네요.

그럼 방향키를 이용해 돠ㅗ다ㅗ돠ㅏ 이동 후 엔터 ! 그리고 파이 카메라를 사용가능하게 할까요? (물론 영어로 메세지가 뜸) 라고 하는거에서 Enable 을 선택하시면 됩니다.

자 이제 마지막으로 Finish를 하신 후 다시 재부팅 ㄱㄱㅆ 


여기까지 하셨으면 기본적인 라즈베리파이 카메라를 사용하기 위한 초기 설정이 완료되었습니다 ! 


Arch Linux 초기 이더넷 설정 방법 : 라즈베리파이 재부팅시 초기화 됩니다



위 사진과 같이 처음에 [ ping -c 3 www.google.com ] (중괄호 내부만) 명령어를 실행하여 데이터를 받아 오는지 확인한다. 이 때 가운데 숫자는 데이터를 몇 번 받아올지 설정하는 것이므로 신경 쓸 필요는 없다.

그리고 만약 ping : unknown host www.google.com(혹은 다른 주소) 라고 뜰 경우엔, 인터넷이 설정되지 않은 것이므로 

계속해서 설정을 위해 다음단계로 넘어간다




다음 단계로 넘어가 [ ip link ] 명령어를 실행 시키면 몇가지 목록이 쭉 ~ 나올텐데 그 중에서 일반적으로 

이더넷 인터페이스는 "e"로 시작할 가능성이 높기 때문에  "lo"나 "w"로 시작할 가능성은 매우 낮다. 

또는 [ iwconfig ]를 사용해 어떤 인터페이스가 무선이 아닌지 확인할 수 있다.


나 같은 경우는 eth0 이라고 한눈에 봐도 이더넷 인터페이스 처럼 보이는 것을 발견 할 수 있었다.





이제 그 다음은 IP 주소와, 서브넷 마스크 그리고 게이트 웨이를 추가하는 단계이다.

가장 먼저 이더넷 인터페이스 활성화를 위해서[ ip link set eth0 up] 을 실행시킨다. 

이때 나 같은 경우는 이더넷 인터페이스 이름이 "eth0"이였기 때문에 사람마다 다를 수 있으므로 가운데 빨간색으로 

표시된 글자는 자신의 이더넷 인터페이스에 맞게 타이핑 해야 한다.



그 다음으로 ip주소를 추가 해야 하는데, 이때는 유동 아이피가 아닌 고정(static)ip를 적어야 한다. 

[ ip addr add 192.xxx.xxx.x/24 dev etho ]

간 혹 뒤에 dev ~ 이 부분을 빠뜨리는 경우도 있으니 꼭 ! 확인하고 타이핑 ㄱㄱ 

그리고 아이피 주소 다음에 붙는 /24 는 사실 무슨 숫자를 넣어야 하는지 잘 몰라 그냥 똑같이 타이핑 했는데, 다행이도 실행이 된다. -_-


그리고 마지막으로 게이트웨이를 추가 하면 된다.

[ ip route add default via 196.xxx.x.x ]


이제 기본적인 ip주소와 서브넷 그리고 게이트웨이 설정은 여기서 끝이다 마지막으로 


[ nano /etc/resolv.conf ] 를 실행시켜 나의 네임서버와 아이피를 등록하면 된다.

여기는 총 3개의 네임서버를 추가 할 수 있는데 보통 기본적으로 2개가 이미 적혀있으니

그건 건드리지 말고 맨 아랫줄에다가 하나를 더 추가하면 된다.

네임서버 이름을 정하는게 자기 맘대로 인지는 모르겠으나 혹시나 하여 나는 이더넷 인터페이스 이름을 그대로 따

[ eth0 192.xxx.xxx.x ] 로 설정하였다.


이렇게 하면 모든 인터넷 기본 설정이 끝난다. 아, 마지막에 네임서버를 추가한 뒤엔 반드시 저장 할 것.


그리고 마지막으로 인터넷이 잘 연결되었는지 아까 처음에 했던 명령어를 실행시켜 데이터를 받아오도록 한 뒤 받아지면 성공 ! 


[ ping -c 3 www.google.com ] 


어때요 참 쉽죠잉 ?

은 개뿔....... 이거 못해서 며칠 ㅈㄹ한거 생각하면 빡침



P.s) 인터넷을 연결 했으니 이제 가장 기본적인 시스템 업데이트 및 파일을 다운 받아 보도록 ㄱㄱㅆ

pacman -Syu    pacman -S mplayer    pacman -S ffmpeg    pacman -S fswebcam






+ Recent posts