常用命令分享记录
分离视频音频流
分离视频文件中的视频
ffmpeg -i 源视频文件 -vcodec copy -an 输出文件
分离视频文件中的音频,两种方式都可以
ffmpeg -i 源视频文件 -acodec copy -vn 输出视频文件
ffmpeg -i 111.mp4 -an 去掉音频.mp4
视频转码
MP4 flv互转
// 640k表示的码率
ffmpeg -i 111.mp4 -b:v 640k 111.flv
ffmpeg -i 111.flv -b:v 640k 111.mp4
H264编码互转
ffmpeg -i 111.mp4 -vcodec h264 333.mp4
ffmpeg -i 111.mp4 -vcodec mpeg4 333.mp4
MP4 avi互转
ffmpeg -i 111.mp4 output.avi
ffmpeg -i 111.avi output.mp4
视频尺寸压缩
// 将输入原始尺寸缩小到560x540输出,
//如果540不写,写成-1,即scale=560:-1, 那也是可以的,ffmpeg会通知缩放滤镜在输出时保持原始的宽高比
ffmpeg -i 111.mp4 -vf scale=560:540 output.mp4
视频添加水印
//显示在右上角
//x:y 离左上角的坐标
//w:h logo的宽和高
//t: 矩形边缘的厚度默认值4
//左上角
ffmpeg -i 111.mp4 -i 00.webp -filter_complex overlay 222.mp4
//右上角
ffmpeg -i 111.mp4 -i 00.webp -filter_complex overlay=W-w 0001.mp4
//居中
ffmpeg -i 111.mp4 -i 00.webp -filter_complex overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 0001.mp4
//左下角
ffmpeg -i 111.mp4 -i 00.webp -filter_complex overlay=0:H-h 0001.mp4
//右下角
ffmpeg -i 111.mp4 -i 00.webp -filter_complex overlay=W-w:H-h 0001.mp4
//添加居中文字水印
ffmpeg -i 111.mp4 -vf "drawtext=fontfile=simhei.ttf: text='抖音':x=(w-text_w)/2:y=(h-line_h)/2:fontsize=56:fontcolor=yellow:shadowy=2" drawtext.mp4
//添加GIF水印 无限循环播放gif
ffmpeg -y -i 111.mp4 -ignore_loop 0 -i 12.gif -filter_complex overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 -shortest gif.mp4
//添加GIF水印 视频五秒时播放一次
ffmpeg -y -i 111.mp4 -itsoffset 5 -i 12.gif -filter_complex overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2:eof_action=pass gif.mp4
//设置水印显示时间段
ffmpeg -y -i 111.mp4 -ignore_loop 0 -i 12.gif -filter_complex "overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2:enable='between(t,5,10)'" -shortest out.mp4
音视频倒放
//视频倒放,无音频
ffmpeg.exe -i 111.mp4 -filter_complex [0:v]reverse[v] -map [v] -preset superfast reversed.mp4
//视频倒放,音频不变
ffmpeg.exe -i 111.mp4 -vf reverse reversedAndAudio.mp4
//音频倒放,视频不变
ffmpeg.exe -i 111.mp4 -map 0 -c:v copy -af "areverse" reversed_audio.mp4
//音视频同时倒放
ffmpeg.exe -i 111.mp4 -vf reverse -af areverse -preset superfast reversedAll.mp4
//视频加速,帧速率变为8倍
ffmpeg -i 111.mp4 -vf setpts=PTS/8 -af atempo=8 kuai8.mp4
//视频减速播放
ffmpeg -i 111.mp4 -filter_complex "[0:v]setpts=2*PTS[v];[0:a]atempo=0.5[a]" -map "[v]" -map "[a]" man2.mkv