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 控制视频的帧率
视频切割成ts文件
ffmpeg -i 3_up.mp4 -profile:v baseline -level 3.0 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls 3_up.m3u8