2014-07-12
FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件。
安装:
$ sudo apt-get install ffmpeg
版本:
$ ffmpeg -version
ffmpeg version 0.8.12-6:0.8.12-0ubuntu0.13.10.1, Copyright (c) 2000-2014 the Libav developers
built on Jun 10 2014 15:33:35 with gcc 4.8.1
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
ffmpeg 0.8.12-6:0.8.12-0ubuntu0.13.10.1
libavutil 51. 22. 2 / 51. 22. 2
libavcodec 53. 35. 0 / 53. 35. 0
libavformat 53. 21. 1 / 53. 21. 1
libavdevice 53. 2. 0 / 53. 2. 0
libavfilter 2. 15. 0 / 2. 15. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 52. 0. 0 / 52. 0. 0
可见,已经不推荐使用ffmpeg了,可以使用avconv命令替换,avconv和ffmpeg的使用基本一致。
也可以使用下面的命令安装avconv:
$ sudo apt-get install libav-tools
avconv是其中的一个工具。本文使用avconv命令。
现有视频video.mp4,使用avconv对其进行操作。
获取视频信息
$ avconv -i video.mp4
avconv version 0.8.12-6:0.8.12-0ubuntu0.13.10.1, Copyright (c) 2000-2014 the Libav developers
built on Jun 10 2014 15:33:35 with gcc 4.8.1
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: isom3gp4
creation_time : 2014-06-24 06:46:43
Duration: 00:00:10.16, start: 0.000000, bitrate: 194 kb/s
Stream #0.0(eng): Video: h264 (High), yuv420p, 640x480, 187 kb/s, PAR 65536:65536 DAR 4:3, 29.32 fps, 90k tbr, 90k tbn, 180k tbc
Metadata:
creation_time : 2014-06-24 06:46:43
At least one output file must be specified
-i
参数说明如下:
-i filename (input)
input file name
将mp4格式转换为flv格式
$ avconv -i video.mp4 video.flv
也可以使用下面的形式:
$ avconv -i video.mp4 -f flv video.flv
-f
参数说明如下:
-f fmt (input/output)
Force input or output file format. The format is normally
autodetected for input files and guessed from file extension for
output files, so this option is not needed in most cases.
查看一下video.flv的格式:
$ file video.flv
video.flv: Macromedia Flash Video
将视频中每帧图片提取出来
$ avconv -i video.mp4 image%3d.jpg
生成的图片名称依次是:image001.jpg、image002.jpg、image003.jpg、image004.jpg……
将上面分解出的图片合并为avi视频
$ avconv -i image%3d.jpg video.avi
将视频中的音频提取出来
需要先使用apt-get安装libavcodec-extra-53
:
$ sudo apt-get install libavcodec-extra-53
提取音频:
$ avconv -i video.mp4 sound.mp3
录制屏幕
如果屏幕分辨率是1366*768,在linux下可以使用下面的命令录制整个屏幕:
$ avconv -f x11grab -video_size 1366*768 -framerate 25 -i :0.0 ~/Desktop/out.mp4
下面这种方式录制的视频更清晰:
$ avconv -f x11grab -r 25 -s 1280x720 -i :0.0+0,0 -vcodec libx264 -pre lossless_ultrafast -threads 0 out.mp4
按ctrl+c键停止录制。
资料
跨平台开源总音视频方案:ffmpeg(新版已名为libav)