1 FFmpeg简介
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。构成FFmpeg主要有三个部分:
1)第一部分是四个作用不同的工具软件,分别是:ffmpeg.exe,ffplay.exe,ffserver.exe和ffprobe.exe。
ffmpeg.exe:音视频转码、转换器
ffplay.exe:简单的音视频播放器
ffserver.exe:流媒体服务器
ffprobe.exe:简单的多媒体码流分析器
2)第二部分是可以供开发者使用的SDK,为各个不同平台编译完成的库。如果说上面的四个工具软件都是完整成品形式的玩具,那么这些库就相当于乐高积木一样,我们可以根据自己的需求使用这些库开发自己的应用程序。这些库有:
libavcodec:包含音视频编码器和解码器
libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能
libavformat:包含多种多媒体容器格式的封装、解封装工具
libavfilter:包含多媒体处理常用的滤镜功能
libavdevice:用于音视频数据采集和渲染等功能的设备相关
libswscale:用于图像缩放和色彩空间和像素格式转换功能
libswresample:用于音频重采样和格式转换等功能
3)第三部分是整个工程的源代码,无论是编译出来的可执行程序还是SDK,都是由这些源代码编译出来的。FFmpeg的源代码由C语言实现,主要在Linux平台上进行开发。FFmpeg不是一个孤立的工程,它还存在多个依赖的第三方工程来增强它自身的功能。
2 下载与安装
1.下载
点击“Download”,进入下载页:
选中中间的Windows平台,点击“Windows Builds”:
选择版本,
对于32位和64位版本,分别提供了三种不同的模式:static、shared和dev
static: 该版本提供了静态版本的FFmpeg工具,将依赖的库生成在了最终的可执行文件中;作为工具而言此版本就可以满足我们的需求;
share: 该版本的工具包括可执行文件和dll,程序运行过程必须依赖于提供的dll文件;
dev: 提供了库的头文件和dll的引导库;
点击“Download Build”,下载到指定目录中。
2.安装
下载的是static版本,配置环境变量即可使用。
“计算机”->“属性”->“高级系统设置“->”环境变量“->“系统变量”->“Path“->“编辑”,将.exe文件所在的路径添加进去即可。
3 使用方法
1.将.mkt视频转为png图像
示例:将Azure Kinect采集的Depth,.mkt视频转为单张深度图。
在命令窗口输入:D:/tools/FFmpeg/ffmpeg-20190821-661a9b2-win64-static/bin/ffmpeg.exe -i D:/tools/FFmpeg/output.mkv -map 0:0 -vsync 0 D:/tools/FFmpeg/out/%04d.png
说明:
D:/tools/FFmpeg/ffmpeg-20190821-661a9b2-win64-static/bin/ffmpeg.exe:ffmpeg.exe可行性文件的路径及名称;
D:/tools/FFmpeg/output.mkv:待转换的.mkt文件路径及名称;
-map 0:0参数将提取轨道索引 0,此索引是深度。【如果需获取IR图像,则设置为:-map 0:1】;
-vsync:0
参数强制 ffmpeg 按原样提取帧,而不是尝试匹配 30 fps、15 fps 或 5 fps 的帧速率;
D:/tools/FFmpeg/out/%04d.png:保存的png图像的路径+名称。
如果使用bat文件,则:【注意多一个%,否则会报错】
D:/tools/FFmpeg/ffmpeg-20190821-661a9b2-win64-static/bin/ffmpeg.exe -i D:\tools\FFmpeg\output.mkv -map 0:0 -vsync 0 D:/tools/FFmpeg/out/%%04d.png
cmd