FFmpeg常用命令:
列出ffmpeg支持的所有格式:
ffmpeg -formats
ffmpeg -formats
截取一段视频
ffmpeg -i input.mp4 -ss 10 -codec copy -t 10 output.mp4
将文件中第10s 剪切10秒的时间,输出到output.mp4中,其中-ss指定偏移时间(可以用秒的格式,也可以用00:00:10.0的格式),-t指定的时长
ffmpeg -i input.mp4 -ss 10 -codec copy -t 10 output.mp4
提取视频文件中的音频文件
ffmpeg -i input.mp4 -vn -acodec copy output.m4a
-vn:取消视频输出
-acodec codec:指定音频编码(‘copy’代表不做音频转码,直接复制)
ffmpeg -i input.mp4 -vn -acodec copy output.m4a
提取视频文件中视频(不保留音频)
ffmpeg -i input.mp4 -an -vcodec copy output_no_audio.mp4
-an取消音频输出
-vcodec codec:指定视频编码(‘copy’代表不做视频转码,直接复制)
ffmpeg -i input.mp4 -an -vcodec copy output_no_audio.mp4
从文件中提取视频导出为裸h264数据
ffmpeg -i output.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb output.h264
-bsf:v h264_mp4toannexb视频数据使用h264_mp4toannexb这个bitstream filter来转换为原始的h264数据
ffmpeg -i output.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb output.h264
提取视频中的音频并转换为aac封装格式
ffmpeg -i input.mp4 -vn -acodec aac output.aac
注:查看是否有aac编码器可以使用命令:
ffmpeg -h encoder=aac
ffmpeg -i input.mp4 -vn -acodec aac output.aac
下面就不截图了
音频数据和视频数据封装程视频文件
ffmpeg -i output.aac -i output.h264 -acodec copy -bsf:a aac_adtstoasc -vcodec copy -f mp4 merge.mp4
从wav音频文件中提取pcm裸数据
ffmpeg -i input.wav -f s16le output.pcm
pcm裸数据封装程wav
wav和pcm的区别就是 pcm是一段纯音频数据 未经压缩 而wav就是给pcm 加上一个文件头 其中描述该段音频的采样率 声道数等信息
ffmpeg -ar 44100 -f s16le -i output.pcm output.wav
视频转换成gif格式
ffmpeg -i input.mp4 -vf scale=300:-1 -t 5 -r 10 image.gif
-vf VideoFilter 使用VideoFilter的scaleFilter
-r 帧率改为10,
-t 只处理前5秒钟的视频
从视频中抽取图片
ffmpeg -i output.mp4 -r 0.25 frames_%04d.png
每4秒钟截取一帧视频画面生成图片
多张图片生成gif
ffmpeg -i frames_%04d.png -r 5 output.gif
降低音量为原来的一半
ffmpeg -i output.wav -af volume=0.5 low_volume.wav
淡入效果器的使用
ffmpeg -i output.wav -filter_complex afade=t=in:ss=0:d=5 gradient.wav
前5s做淡入效果
淡出效果器的使用
ffmpeg -i output.wav -filter_complex afade=t=out:st=20:d=5 gradient_out.wav
从20s开始,做5s的淡出效果
对声音进行变速但不变调效果器的使用
ffmpeg -i output.wav -filter_complex atempo=0.5 change_speed.wav
语速变为原来的0.5倍