FFmpeg 命令大全


音视频合并(要确保视频没有音频轨)

ffmpeg -i out.mp4 -i out.aac -vcodec copy -acodec copy [-shortest][-y] new.mp4

(ios系统对格式有严格要求,如果网络文件无法播放 就去掉 -acodec copy)

//-vcodec copy: 视频只拷贝,不编解码

//-acodec copy:音频只拷贝,不编解码

//new.mp4 :新生成的文件,文件的长度由两个输入文件的最长决定

//-shortest :取音视频中最短的

//-y 直接覆盖不提示


提取音频

 ffmpeg -i out.mp4 -acodec copy -vn  output.aac
 ffmpef -i out.mp4  -c:a copy -vn   output.aac

 以上两个命令相等


提取视频

ffmpeg -i out.mp4 -vcodec copy -an output.mp4
ffmpef -i out.mp4 -c:v copy -an    output.mp4

查看音视频信息

ffprobe xz.mp4

 Duration   :时长

start :开始时间(有时候开始时间并不一定是从0开始)

第一条轨  Stream #0:0

第二条轨  Stream #0:1 


 转换格式

ffmpeg -i output.mp4 [-c copy] out.flv//flv mov ts

 ffmpeg 可以把高清晰的视频转为低分辨率的, 但不可以把低分辨率的转为高分辨率的


音视频裁剪

ffmpeg -i output.mp4 -ss 00:00:02 -t 10 [-c copy] out.mp4

-ss 开始时间

-t 持续时长

-c  copy 不对音视频进行编解码 ,如果加了该选项,可能会导致音视频截取时长不对。


多段音视频拼接

ffmpeg -f concat -safe 0 -i  tmp.txt -c copy  new.mp4

 tmp.txt 内容如下

注意的点:

多段音视频转成统一格式,视频:分辨率,帧率.音频:编码器,采样率,通道的个数,采样大小

视频进行拼接最好用.ts格式


音频混音

 ffmpeg -i 1de2d9ad-1cab-4216-90e4-138420daca3f.mp4 -i 9刘若英\ -\ 后来.mp3 -filter_complex "amix=inputs=2:duration=first:weights='0.9 0.1'" amixer_1.aac

 视频生成图片

ffmpeg -i new.mp4 -r 1 [-s 1280*720][-ss 00:00:10 -t 5 ] -f image2 %1d.jpg

- r 1   每隔 1秒生成一张图片,生成的图片数是视频时长+2 首尾各会生成一张图片.   如果 - r  2  则是每隔一秒生成两张图片   -r 0.5 则是每个两秒生成一张图片. 

-s      后面的参数决定图片的分辨率,如果不加则生成和视频相同分辨率的图片

%1d,jpg 是生成图片的文件名称  如果是视频是15秒 则会生成1,2,3,..17.jpg  如果是%3d则会生成001,002,003,017.jpg.  

-ss  开始时间  -t结束时间

 图片生成视频

 ffmpeg -f image2 -r 1 -i %01d.jpg -r 1  -y video.mp4   

 第一个 -r 控制输入视频的每秒播放次数,第二个-r 控制视频的帧率