首页 > 代码库 > FFmpeg 在树莓派上的运行

FFmpeg 在树莓派上的运行

FFmpeg 在树莓派上的运行

FFmpeg是编解码领域的基础软件,还是因为树莓派才有了直接的接触。

windows 上使用 ffmpeg

在官方网站下载静态编译的版本 http://www.ffmpeg.org/download.html

一共3个可执行文件
ffmpeg.exe 编码工具
ffplay.exe 播放器,基于SDL的窗口
ffprobe.exe 查看视频信息

这三个工具有大量的参数。功能也非常强大。

树莓派上使用FFmpeg

非常简单,超出想象

apt-get install ffmpeg

这样居然就装好了,当然后来也知道了,这个是没有优化的版本

root@raspberrypi:~# ffmpeg --help > /ffmpeg.txt
ffmpeg version 0.8.10-6:0.8.10-1+rpi1, Copyright (c) 2000-2013 the Libav developers
built on Mar 22 2014 02:13:15 with gcc 4.6.3
THIS PROGRAM IS DEPRECATED
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

这个大概是说用avconv这个前台,看起来很无聊的说

encoder ‘aac‘ is experimental and might produce bad results.
Add ‘-strict experimental‘ if you want to use it.

如果是转 -vcodec libx264 ,会提示aac是试用的需要加-strict experimental 参数,这个 win32版本是不需要这个参数的

H.264编码命令

ffmpeg  -y -i 1.avi  -ss 00:00:00 -t 00:00:25  -vcodec libx264  -b 200k -r 24 -ab 64k -ar 32000   1.mp4

-y 会指示ffmpeg覆盖输出文件
-i 输入文件
-b 指定码率注意单位是bit/s,所以我们一般要加k,比如 -b 1000k 就是1000kb/s
-g 设置组的大小
-vframes 指定要编码的帧数,比如-vframes 1 就是编码1帧,截图的时候就这样写
-r 指定帧率,默认是25
-s 指定图像分辨率,用wxh的格式,比如320×240
-vcodec libx264 使用H.264编码
-t 指定视频流持续的时常,支持以秒为单位的数字或"时:分:秒[.毫秒]"
-fs 指定输出文件大小的限制
-ss 指定开始的时间,和-t的单位一样

-ar 设置采样频率,默认44100hz
-ab 设置比特率,默认64k
-an 禁用音频录制
-acodec 指定音频编码器
-strict experimental ARM才要使用

从经验看 -s 指定图像分辨率,-b 指定码率 都不需要设置,ffmpeg会自动设好

3台设备运行FFmpeg编码性能比较

设备CPU整机功率CPU特性编码的FPS
Raspberry PIARM11 700Mhz3.0Wnone1 ~ 0.N
ThinkPad T23PIII 1.2G26WMMX2 SSE Cache329 ~ 3
Toshiba M333T6600 Dual-Core 2.2G46WMMX2 SSE2Fast SSSE3 SSE4.1 Cache6466 ~ 22

树莓派运行1天 57度

从这个结果来看,树莓派完全没有优势吗,越强的CPU效果越好。

下次试试XMBC里面优化过的FFmpeg看看。这次就到这里.