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 Converting Video Format Using <FFMPEG> Program
Video taken by Raspberry Pi camera use "H.264" format, which is a format that is not widely used by ordinary users. You can use <FFMPEG> program to convert it to a popular video format.
● Installing <FFMPEG> program
To use <FFMPEG> program, you need to install it as follows:
[Command Format]
sudo apt-get install ffmpeg |
If you execute the command, it checks installation of the program and confirms whether or not to install the program. If you choose "Continue", the installation process begins as shown below.
pi@raspberrypi ~ $ sudo apt-get install ffmpeg |
Reading package lists... Done Building dependency tree Reading state information... Done ~ ~ Skip ~ 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 ~ ~ Skip ~ 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 |
● Converting video format
To convert a video using <FFMPEG> program, use the command in the format as follows.
[Command Format]
ffmpeg [[in-file option] [-I in-file] [out-file options] out-file |
[Command Overview]
■ This converts the specified video to a file of a different format.
■ User privilege -- Normal user.
[Detail Description]
■ None
[Main 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. |
[Used Example]
In this example, we will convert video of "H.264" format taken previously in Raspberry Pi to MKV format.
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% |
If you check after completing the operation, you can see that MKV file is newly created as below.
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 |
Now, if you play the vedo file of MKV format, you can view the contents as follows.
Figure 22‑5 Playing video using MKV file