2023年8月

音视频混流:(音频优先考虑转换成mp3格式的)
ffmpeg -i xxx1.mp3 -i xxx2.mp4 out.mp4

转码视频格式:
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
将输入视频文件 input.mp4 转码为 H.264 视频编解码器和 AAC 音频编解码器的 MP4 格式文件 output.mp4。

裁剪视频:
ffmpeg -i input.mp4 -vf "crop=640:480:10:10" output.mp4
将输入视频文件 input.mp4 裁剪为 640x480 分辨率,起始位置为 (10, 10),然后输出为 output.mp4。

剪切视频:
ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c:v copy -c:a copy output.mp4
从输入视频文件 input.mp4 中剪切出从第 1 分钟开始,时长为 30 秒的视频,并保持原始编解码方式,然后输出为 output.mp4。

提取音频:
ffmpeg -i input.mp4 -vn -c:a copy output.aac
从输入视频文件 input.mp4 中提取音频并保存为 AAC 格式文件 output.aac。

合并多个视频:
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "0:vconcat=n=2:v=1:a=0" output.mp4
将 input1.mp4 和 input2.mp4 两个视频合并为一个输出视频 output.mp4。

视频录制:(时代感的画质,不可见的录制时间,无法确定的录制效果,仅可用来学习掌握ffmpeg使用,日常录制还是优先主流市面上的软件)
ffmpeg.exe -f gdigrab -i desktop out.mp4
ffmpeg.exe -f gdigrab -framerate 6 -i desktop out.mp4
ffmpeg.exe -f gdigrab -framerate 6 -offset_x 50 -offset_y 50 -video_size 400x400 -i title=ffmpeg out.mp4

视频画中画:
ffmpeg -re -i input.mp4 -vf "movie=sub.mp4,scale=480x320[test]; in overlay [out]" -vcodec libx264 output.flv(1260X740为居中的位置)

视频画中画(坐标设置):overlay处的x,y坐标数值越大位置越居中
ffmpeg -re -i input.mp4 -vf "movie=sub.mp4,scale=480x320[test]; in overlay=x=main_w-480:y=main_h-320 [out]" -vcodec libx264 output.flv

转换音频采样率:
ffmpeg -i input.wav -ar 44100 output.wav
将输入音频文件 input.wav 的采样率转换为 44100 Hz,并输出为 output.wav。

定时视频截图:
ffmpeg -i input.flv -ss 00:00:7.435 -vframes 1 out.png

添加水印:
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
将 watermark.png 图片添加到 input.mp4 视频的左上角,然后输出为 output.mp4。

调整视频大小:
ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4
将输入视频文件 input.mp4 调整为 1280x720 分辨率,然后输出为 output.mp4。

提取视频:
ffmpeg -i input.mp4 -an -c:v copy output.mp4
从输入视频文件 input.mp4 中提取视频部分(去除音频),并保持原始视频编解码方式,然后输出为 output.mp4。

调整帧率:
ffmpeg -i input.mp4 -r 30 output.mp4
将输入视频文件 input.mp4 的帧率调整为 30 帧/秒,并输出为 output.mp4。

添加字幕:
ffmpeg -i input.mp4 -vf "subtitles=sub.srt" output.mp4
将名为 sub.srt 的字幕文件添加到 input.mp4 视频中,并输出为 output.mp4。

调整音量:
ffmpeg -i input.mp3 -af "volume=2.0" output.mp3
将输入音频文件 input.mp3 的音量调整为原来的两倍,并输出为 output.mp3。

音频半速处理:
ffmpeg -i input.wav -filter_complex "atempo=tempo=0.5" -acodec aac output.aac

音频2倍速处理:
ffmpeg -i input.wav -filter_complex "atempo=tempo=2.0" -acodec aac output.aac

视频半速处理:
ffmpeg -re -i input.mp4 -filter_complex "setpts=PTS*2" output.mp4

视频2倍速处理:
ffmpeg -i input.mp4 -filter_complex "setpts=PTS/2" output.mp4

视频旋转:
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
将输入视频文件 input.mp4 顺时针旋转 90 度,并输出为 output.mp4。

视频片段拼接:
ffmpeg -f concat -i filelist.txt -c copy output.mp4
通过使用一个包含视频文件列表的 filelist.txt 文件,将多个视频片段拼接成一个输出视频 output.mp4。

调整视频亮度、对比度和饱和度:
ffmpeg -i input.mp4 -vf "eq=brightness=0.2:contrast=1.5:saturation=1.5" output.mp4
通过视频滤镜来调整输入视频文件 input.mp4 的亮度、对比度和饱和度,并输出为 output.mp4。

创建 GIF 动画:
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" -c:v gif output.gif
将输入视频文件 input.mp4 转换为 GIF 动画文件 output.gif,并设置帧率为 10 帧/秒,缩放到宽度 320 像素。

视频加速或减速:
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
将输入视频文件 input.mp4 加速为原来的一半速度,并输出为 output.mp4。

视频反转:
ffmpeg -i input.mp4 -vf "reverse" output.mp4
将输入视频文件 input.mp4 反转,即播放顺序颠倒,然后输出为 output.mp4。

提取视频帧为图像:
ffmpeg -i input.mp4 -vf "select='eq(pict_type\,I)'" -vsync vfr frame%d.png
从输入视频文件 input.mp4 中提取关键帧(I 帧)作为图像,并以帧号命名输出的图像文件。

音频混流:
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex "0:aamix=inputs=2:duration=first:dropout_transition=2" output.mp3
将两个音频文件 input1.mp3 和 input2.mp3 进行混流,输出一个包含两者的混合音频文件 output.mp3。

视频加水印并指定位置:
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
将 watermark.png 图片添加到 input.mp4 视频的左上角,指定水印位置为 (10, 10),然后输出为 output.mp4。

音频格式转换:
ffmpeg -i input.wav -c:a mp3 -b:a 192k output.mp3
将输入音频文件 input.wav 转换为 MP3 格式,并指定音频比特率为 192 Kbps,输出为 output.mp3。

裁剪视频段并添加转场效果:
ffmpeg -i input.mp4 -vf "crop=640:480:10:10" -t 5 -vf "fade=out:st=4:d=1" output.mp4
将 input.mp4 视频裁剪为 640x480 分辨率,起始位置为 (10, 10),然后在视频结束前添加一个 1 秒的淡出效果,总时长为 5 秒,输出为 output.mp4。

从视频中提取音频轨道:
ffmpeg -i input.mp4 -map a -c:a copy output.m4a
从 input.mp4 视频中提取音频轨道,保持原始音频编解码方式,输出为 output.m4a。

剪切和连接音频:
ffmpeg -i input.mp3 -ss 00:00:30 -t 00:01:30 -c:a copy part1.mp3
ffmpeg -i input.mp3 -ss 00:02:30 -t 00:01:00 -c:a copy part2.mp3
ffmpeg -i "concat:part1.mp3|part2.mp3" -c:a aac -strict experimental output.mp3
先从 input.mp3 音频中剪切出两部分音频,然后使用 concat 过滤器将它们连接起来,并输出为 output.mp3。

模糊淡入淡出效果:
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v]fade=out:st=3:d=1[v0];[1:v]fade=in:st=0:d=1[v1];[v0]boxblur=5:1:cr=0:ar=0[bg];[v1]boxblur=5:1:cr=0:ar=0[fg];bgoverlay=(W-w)/2:(H-h)/2[outv]" -map "[outv]" output.mp4
将 input1.mp4 和 input2.mp4 视频分别进行淡出和淡入,并在过渡期间模糊处理,然后叠加在一起,创建一个模糊淡入淡出效果。

溶解效果:
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v]fade=out:st=3:d=1[v0];[1:v]fade=in:st=0:d=1[v1];v0dissolve=transition=allslide[outv]" -map "[outv]" output.mp4
将 input1.mp4 和 input2.mp4 视频分别进行淡出和淡入,并使用溶解过渡效果,在过渡期间将两个视频混合在一起。

闪白效果:
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v]fade=out:st=3:d=1[v0];[1:v]fade=in:st=0:d=1[v1];v0gltransition=duration=1:source=1:offset=pi[outv]" -map "[outv]" output.mp4
将 input1.mp4 和 input2.mp4 视频分别进行淡出和淡入,并使用闪白过渡效果,在过渡期间将两个视频混合在一起。