ffmpeg在windows和嵌入式平台下使用
一、ffmpeg在windows下的使用
1.1 下载头文件和库文件
ffmpeg在windows下使用比较简单,只要到官网下载编译好的库即可,下载方法如下所示:
网址:http://www.ffmpeg.org/download.html
点击步骤3后进入如下所示链接:
这里下载4.4版本,选择ffmpeg-n4.4-latest-win64-gpl-shared-4.4.zip,下载解压后如下所示:
这里面包含了头文件和库,可用vs建立工程使用。
1.2 ffmpeg 命令使用
如果只是使用ffmpeg 可以下载"ffmpeg-n4.4-latest-win64-lgpl-4.4.zip"只有可执行文件的版本,下载后进入bin目录,打开windows控制终端,如下所示:
在终端中输入ffmpeg.exe -version 命令可以打印ffmepg的版本信息
1.3 使用ffplay播放视频
ffplay 命令参数:
-i:指定输入的视频源
-window_title : 显示窗口的名称
-x:指定显示窗口宽度,也可以指定,使用默认宽度
-y:指定显示窗口高度,也可以指定,使用默认宽度
-fflags nobuffer:不使用缓存,这样可以降低视频延时
-flags low_delay:使用低延时模式播放视频
1.3.1 播放网络视频流
播放rtmp视频流:ffplay -window_title "rtmp video" -x 1200 -y 800 -i rtmp://121.40.52.189/jdp/yy_ch1
播放rtsp视频流: ffplay -window_title "rtsp video" -x 1200 -y 800 -i rtsp://192.168.2.5:554/ch1
1.3.2 ffplay低延时播放
ffplay播放视频默认是有缓存和延时的,如果要低延时播放,可以用下面的命令
低延时播放rtsp视频流: ffplay -fflags nobuffer -flags low_delay -i rtsp://192.168.2.35:554/ch0
1.3.3 打印log信息
ffplay可以加-v 9 -loglevel 99 参数打印log信息,这对于排查问题有帮助
ffplay -v 9 -loglevel 99 -fflags nobuffer -flags low_delay -i rtsp://192.168.2.35:554/ch0
二、在嵌入式平台下使用
嵌入式平台的芯片各有不同,需要下载ffmpeg源码进行交叉编译,下面以hi3559平台为例说明ffmpeg交叉编译方法。
2.1 ffmepg源码下载
源码下载地址:http://www.ffmpeg.org/download.html
如果下载最新版本点击“Dowload Snapshot”即可,如果下载历史版本,点击“Browse”,进入如下所示链接:
这里下载4.4.1版本为例,点击n4.4.1,进入如下链接:
点击snapshot,即可下载源码。
2.2 配置编译环境
执行以下命令配置ffmpeg编译环境:
./configure --prefix=/home/yyfage/YY/open_source/build_ffmpeg_hi3559/ --target-os=linux --arch=aarch64 --enable-cross-compile --cc=aarch64-himix100-linux-gcc --disable-ffplay --disable-ffprobe --disable-stripping
--disable-stripping表示编译不进行strip操作,strip是给程序做瘦身。也可以用strip=arm-linux-strip选项,ffmpeg默认的strip是pc机的strip,如果不设置编译会报错。
2.3 编译、安装
编译:make
安装:make install,安装好后,ffmpeg会安装到--prefix这个参数目录下。
在安装目录下回生成一下几个文件,如图所示:
bin:这个目录中有一个ffmpeg可执行程序,如果不需要刻意加--disable-ffmpeg 选项不编译这个
include:ffmpeg头文件
lib:静态库,这个目录中有个pkgconfig目录,这个目录中的.pc文件是库的依赖文件信息。从pkg-config命令读取
share:官方例程在share/ffmpeg/example目录下
2.4 pkg-config环境变量配置
Makefile文件参考share/ffmpeg/example的Makfile文件,因为Makefile中是使用pkg-config来获取ffmpeg的头文件和库文件信息,先要指定pkg-config命令的环境变量.
sudo vim /etc/bash.bashrc
在bash.bashrc文件末尾添加以下内容
source /etc/bash.bashrc