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.5 <FFMPEG> 프로그램을 이용한 동영상 format 변환하기
Pi에서 촬영한 동영상은 H.264 format를 사용하는데, 이 형식은 일반 사용자들이 많이 사용하지 않는 형식이다. 이를 일반 사용자들이 많이 사용하는 동영상 format으로 변환하기 위해서 <FFMPEG> 프로그램을 이용할 수 있다.
● <FFMPEG> 프로그램 설치
<FFMPEG> 프로그램을 사용하려면 해당 프로그램을 다음과 같이 설치해야 한다.
[명령 형식]
sudo apt-get install ffmpeg |
해당 명령을 실행하면 프로그램 설치에 대한 점검을 한 후 설치여부를 확인하게 된다. 계속 진행을 선택하면 아래와 같이 설치 작업이 시작된다.
pi@raspberrypi ~ $ sudo apt-get install ffmpeg |
Reading package lists... Done Building dependency tree Reading state information... Done ~ ~ 중략 ~ 0 upgraded, 8 newly installed, 0 to remove and 39 not upgraded. Need to get 5,174 kB of archives. After this operation, 13.4 MB of additional disk space will be used. Do you want to continue [Y/n]? y ~ ~ 중략 ~ Setting up libavfilter2:armhf (6:0.8.17-1+rpi1) ... Setting up ffmpeg (6:0.8.17-1+rpi1) ... W: Operation was interrupted before it could finish |
● 동영상 format 변환
<FFMPEG> 프로그램을 이용해 동영상을 변환하려면, 다음과 같은 형식의 명령을 사용한다.
[명령 형식]
ffmpeg [[in-file option] [-I in-file] [out-file options] out-file |
[명령 개요]
■ 지정된 동영상을 다른 형식의 파일로 변환한다.
■ user 권한 -- 일반 user.
[상세 설명]
■ None
[주요 option]
-h, -?, -help, --help | Show help. |
-formats | Show available formats. The fields preceding the format names have the following meanings: D Decoding available E Encoding available |
-codecs | Show available codecs. The fields preceding the codec names have the following meanings: D Decoding available E Encoding available V/A/S Video/audio/subtitle codec |
-i filename | input file name |
-vframes number | Set the number of video frames to record. |
-r fps | Set frame rate (Hz value, fraction or abbreviation), (default = 25). |
-s size | Set frame size. The format is wxh (avserver default = 160x128, ffmpeg default = same as source). The following abbreviations are recognized: |
-vcodec codec | Force video codec to codec. Use the "copy" special value to tell that the raw codec data must be copied as is. |
[사용 Example]
여기서는 앞에서 Raspberry Pi로 촬영한 H.264 형식의 동영상을 MKV 형식으로 변환해 보도록 하겠다.
pi@raspberrypi ~/Image_Camera $ ffmpeg -r 30 -i test_motion1.h264 -vcodec copy test_motion1.mkv |
ffmpeg version 0.8.17-6:0.8.17-1+rpi1, Copyright (c) 2000-2014 the Libav developers built on Mar 25 2015 00:39:58 with gcc 4.6.3 The ffmpeg program is only provided for script compatibility and will be removed in a future release. It has been deprecated in the Libav project to allow for incompatible Shell syntax improvements in its replacement called avconv (see Changelog for details). Please use avconv instead. [h264 @ 0x480660] Estimating duration from bitrate, this may be inaccurate
Seems stream 0 codec frame rate differs from container frame rate: 2400000.00 (2400000/1) -> 30.00 (30/1) Input #0, h264, from 'test_motion.h264': Duration: N/A, bitrate: N/A Stream #0.0: Video: h264 (High), yuv420p, 1920x1080, 30 fps, 30 tbr, 1200k tbn, 2400k tbc Output #0, matroska, to 'test_modion.mkv': Metadata: encoder : Lavf53.21.1 Stream #0.0: Video: libx264, yuv420p, 1920x1080, q=2-31, 1k tbn, 1200k tbc Stream mapping: Stream #0.0 -> #0.0 Press ctrl-c to stop encoding frame= 142 fps= 0 q=-1.0 Lsize= 9844kB time=10000000000.00 bitrate= 0.0kbits/s video:9842kB audio:0kB global headers:0kB muxing overhead 0.017483% |
작업이 완료된 후에 확인해 보면, 다음과 같이 MKV 파일이 새로이 생성되어 있는 것을 확인할 수 있다.
pi@raspberrypi ~/Image_Camera $ ls -l |
-rw-r--r-- 1 pi pi 10080058 May 13 16:11 test_motion1.mkv -rw-r--r-- 1 pi pi 10078296 May 13 14:51 test_motion1.h264 |
이제 MKV 형식의 동영상 파일을 play해 보면, 다음과 같은 내용을 확인할 수 있다.
그림 22‑5 MKV 파일을 이용한 동영상 확인