之前给小伙伴们分享了在Mac中安装FFMPEG,今天主要给大家整理了下在音视频测试中经常使用的FFMPEG相关命令。
1 FFMPEG概念
FFmpeg是一款音视频编解码工具,也是一组音视频编解码开发套件,为开发者提供了丰富的音视频处理调用接口。FFmpeg源代码编译后会生成几个可执行程序,分别是ffmpeg、ffplay、ffprobe,这三个也称为FFmpeg 三剑客,各有各的作用,接下来就给大家一一介绍。
2 ffmpeg 介绍2.1 ffmpeg工作流程
ffmpeg主要是多媒体的编解码工具,具体功能主要包括视频裁剪,去除水印,添加 logo,提取封面,提取音频,提取视频等功能。ffmpeg的主要工作流程相对比较简单,介绍如下,
1)解封装(Demuxing)2)解码(Decoding)3)编码(Encoding)4)封装(Muxing)
其中需要经过六个步骤,具体如下,
1)读取输入源2)进行音视频的解封装3)解码每一帧音视频数据4)编码每一帧音视频数据5)进行音视频的重新封装6)输出到目标
ffmpeg 整体处理的工作流程与步骤如图所示,
从工作流程可以看出,ffmpeg 首先读取输入源,然后通过Demuxer将音视频包进行解封装,再通过Decoder进行解码,将音视频通过Decoder解码成为YUV或者PCM数据,然后通过Encoder将对应的数据进行编码,将编码后的音视频数据包通过Muxer进行封装,最终输出为输出流。
2.2 ffmpeg常用命令
1、基本信息查询命令
字段描述信息
-version
表示显示版本信息
-formats
表示可用格式
-muxers
显示可用复用器
-demuxers
显示可用解复用器
-codecs
显示可用编解码器
-decoders
显示可用解码器
-encoders
显示可用编码器
-protocols
显示可用的协议
-pix_fmts
显示可用的像素格式
2、录制命令
1)录制视频
ffmpeg -f avfoundation -i 1 -r 30 out.yuv# -f:指定使用Mac下的avfoundation来采集数据。# -i:指定从哪采集的数据,# 1代表的是文件索引值(0:摄像头)# -r:表示帧率# 采集的数据 是原始数据,没有经过压缩# 或者输入命令ffmpeg -f avfoundation -pixel_format uyvy422 -i "1" -f flv pingmu.flv
2)录制音频
ffmpeg -f avfoundation -i :0 out.wav# :0代表音频设备# 或者ffmpeg -f avfoundation -i ":0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv maikefeng.flv
3)录制音视频
ffmpeg -f avfoundation -framerate 30 -video_size 1280x720 -i "0:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv "rtmp:xxxx推流地址"
4)分解/复用命令:文件格式的转换
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv# copy:针对音视频编解码方式不做改变# -i:输入文件# -vcodec:视频编解码方式# -acodec:音频编解码方式
5)提取视频
ffmpeg -i out.mp4 -an -vcodec copy out.h264
6)提取音频
ffmpeg -i out.mp4 -vn -acodec copy out.aac
7)处理原始数据命令
原始数据:就是ffmpeg解码后的数据,pcm、yuv格式的数据
例如 提取PCM数据:
ffmpeg -i out.mp4 -vn -ar 44100 -ac2 -f s16le out1212.pcm# -ar 表示音频采样率# -ac2表示双声道# -f s16le:音频数据存储格式,s代表有符号的
8)裁剪与合并命令
视频裁剪
ffmpeg -i out.mp4 -ss 00:00:00 -t 10 out.tsffmpeg -i out.mp4 -ss 00:00:00 -t 10 out1.mp4# 十分秒# -t裁剪后视频的时长为10s
视频合并
ffmpeg -f concat -i in.txt outin999.mp4
9)图片/视频互转命令
ffmpeg -i outin999.mp4 -f image2 image-%3d.jpeg每秒转一张图片-f image2将图片转为什么格式# 图片转视频ffmpeg -i image-%3d.jpeg out1212121.mp4
10)直播相关命令
ffmpeg -re -i out.mp4 -c copy -f fly 推流地址# -re:减慢帧率速度# 推出去的文件格式:-f fly
3 ffplay 常用命令
ffplay提供了音视频显示和播放相关的图像信息,音频的波形信息等。简而言之就是一个播放器。
4 ffprobe常用命令
ffprobe是多媒体分析工具,比如音视频的参数、媒体容器的参数信息等。也可以分析媒体文件中每个包的长度、包的类型、帧的信息等。
后续还会为小伙伴们补充相关知识,如果感觉博主的文章还不错的话,还请点赞、收藏哦!
限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411