目录
1--FFplay简单过滤器
2--FFmpeg命令参数
2-1 主要参数
2-1-1 -i设定输入流
2-1-2 -f设定输出格式
2-1-3 -ss设定开始时间
2-1-4 -t设定时间长度
2-1-5 代码实例
2-2 音频参数
2-2-1 -aframes设置输出的音频帧数
2-2-2 -b:a设置音频码率
2-2-3 -ar设置音频采样率
2-2-4 -ac设定声音的通道数
2-2-5 -acodec设定声音编解码器
2-2-6 -an表示不处理音频
2-2-7 -af设置音频过滤器
2-2-8 代码实例
2-3 视频参数
2-3-1 -vframes设置输出的视频帧数
2-3-2 -b设定视频码率
2-3-3 -b:v设定视频码率
2-3-4 -r设定帧速率
2-3-5 -s设定画面的宽与高
2-3-6 -vn表示不处理视频
2-3-7 -aspect aspect设置横纵比
2-3-8 -vcodec设定视频编解码器
2-3-9 -vf设定视频过滤器
2-3-10 代码实例
1--FFplay简单过滤器
① 视频旋转
ffplay -i test.mp4 -vf transpose=1
# 通过transpose控制旋转的角度,1表示顺时针旋转90°
② 视频反转
# 左右反转
ffplay test.mp4 -vf hfilp
# 上下反转
ffplay test.mp4 -vf vfilp
③ 视频旋转和反转
ffplay test.mp4 -vf hflip,transpose=1
④ 变速播放
# 音频变速播放
ffplay -i test.mp4 -af atempo=2
# 视频变速播放
ffplay -i test.mp4 -vf setpts=PTS/2
# 音视频同时变速
ffplay -i test.mp4 -vf setpts=PTS/2 -af atempo=2
2--FFmpeg命令参数
2-1 主要参数
2-1-1 -i设定输入流
通过 -i 参数设置输入视频流,如:-i test.mp4;
2-1-2 -f设定输出格式
通过 -f 设定输出格式,但一般情况下不使用,而是直接通过输出文件名来指定输出格式,-f flv 表示设定输出格式为flv;
2-1-3 -ss设定开始时间
通过 -ss 可以设定输出视频流的开始时间,结合 -t 参数可用于剪切视频;
2-1-4 -t设定时间长度
通过-t 设定输出视频流的时间长度;
2-1-5 代码实例
输入视频流为test1.mp4,设置开始时间为10s,持续时间为100s,输出视频流为out1.mp4,输出格式为mp4
ffmpeg -i test1.mp4 -ss 10 -t 100 out1.mp4
通过 ffprobe out1.mp4 可以查看输出视频文件的详细信息,如下图 Duration 参数显示了输出文件的持续时间约为 100s,与上面的处理代码符合;
2-2 音频参数
2-2-1 -aframes设置输出的音频帧数
2-2-2 -b:a设置音频码率
2-2-3 -ar设置音频采样率
2-2-4 -ac设定声音的通道数
2-2-5 -acodec设定声音编解码器
2-2-6 -an表示不处理音频
2-2-7 -af设置音频过滤器
2-2-8 代码实例
ffmpeg -i test.mp4 -b:a 192k -ar 48000 -ac 2 -acodec libmp3lame -aframes 200 out2.mp3
通过上面的代码可以把视频的部分音频流提取出来,查看音频编解码器可通过以下代码实现(Windows 对应的是 findstr mp3):
ffmpeg -encoders | grep mp3
# 表示查看mp3字样的编码器
2-3 视频参数
2-3-1 -vframes设置输出的视频帧数
2-3-2 -b设定视频码率
2-3-3 -b:v设定视频码率
2-3-4 -r设定帧速率
2-3-5 -s设定画面的宽与高
2-3-6 -vn表示不处理视频
2-3-7 -aspect aspect设置横纵比
2-3-8 -vcodec设定视频编解码器
2-3-9 -vf设定视频过滤器
2-3-10 代码实例
ffmpeg -i test1.mp4 -vframes 300 -b:v 300k -r 30 -s 640x480 -aspect 16:9 -vcodec copy out2.mp4
-vcodec copy表示使用原来的编解码数据;