一、基础信息查询(15条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 1 | ffmpeg -version |
查看 FFmpeg 版本信息 |
| 2 | ffmpeg -formats |
查看支持的所有封装格式(如 MP4、MKV) |
| 3 | ffmpeg -codecs |
查看支持的所有编解码器(如 H.264、AAC) |
| 4 | ffmpeg -encoders |
查看支持的编码器 |
| 5 | ffmpeg -decoders |
查看支持的解码器 |
| 6 | ffmpeg -filters |
查看支持的所有滤镜(如缩放、旋转) |
| 7 | ffmpeg -i input.mp4 |
查看输入文件的基本信息(时长、码率、分辨率等) |
| 8 | ffmpeg -i input.mp4 -hide_banner |
查看输入文件信息(隐藏 FFmpeg 版本横幅) |
| 9 | ffmpeg -pix_fmts |
查看支持的像素格式(如 YUV420P、RGB24) |
| 10 | ffmpeg -sample_fmts |
查看支持的音频采样格式(如 S16LE、FLTP) |
| 11 | ffmpeg -devices |
查看支持的设备(如摄像头、麦克风) |
| 12 | ffprobe -i input.mp4 -show_streams |
查看输入文件的流详细信息(视频流、音频流) |
| 13 | ffprobe -i input.mp4 -show_format |
查看输入文件的封装格式详细信息 |
| 14 | ffprobe -i input.mp4 -print_format json -show_streams |
以 JSON 格式输出流信息 |
| 15 | ffmpeg -h encoder=libx264 |
查看特定编码器(如 libx264)的详细帮助 |
二、视频格式转换(40条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 16 | ffmpeg -i input.mp4 -c copy output.avi |
MP4 转 AVI(直接封装转换,不重新编码) |
| 17 | ffmpeg -i input.mp4 -c copy output.mkv |
MP4 转 MKV(直接封装转换) |
| 18 | ffmpeg -i input.avi -c copy output.mp4 |
AVI 转 MP4(直接封装转换) |
| 19 | ffmpeg -i input.mov -c copy output.mp4 |
MOV 转 MP4(直接封装转换) |
| 20 | ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4 |
视频转 H.264 编码(重新编码,兼容广) |
| 21 | ffmpeg -i input.mp4 -c:v libx265 -c:a aac output.mp4 |
视频转 H.265/HEVC 编码(体积更小,画质相近) |
| 22 | ffmpeg -i input.mp4 -c:v libvpx-vp9 -c:a libopus output.webm |
视频转 VP9 编码(WebM 格式,适合流媒体) |
| 23 | ffmpeg -i input.mp4 -s 1280x720 -c:v libx264 output.mp4 |
调整视频分辨率为 1280x720(重新编码) |
| 24 | ffmpeg -i input.mp4 -vf scale=1280:720 -c:v libx264 output.mp4 |
用滤镜调整分辨率(更灵活,支持保持宽高比) |
| 25 | ffmpeg -i input.mp4 -b:v 2M -c:v libx264 output.mp4 |
设置视频码率为 2Mbps(控制体积和画质) |
| 26 | ffmpeg -i input.mp4 -r 24 -c:v libx264 output.mp4 |
调整视频帧率为 24fps |
| 27 | ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4 |
H.264 恒定质量编码(CRF 23 为默认,越小画质越高) |
| 28 | ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4 |
H.265 恒定质量编码(CRF 28 为默认) |
| 29 | ffmpeg -i input.mp4 -c:v prores -c:a pcm_s16le output.mov |
视频转 ProRes 编码(专业剪辑用,无损/近无损) |
| 30 | ffmpeg -i input.mp4 -c:v dnxhd -b:v 185M -c:a pcm_s16le output.mov |
视频转 DNxHD 编码(Avid 剪辑常用) |
| 31 | ffmpeg -i input.mp4 -an -c:v copy output.mp4 |
提取视频流(去除音频,不重新编码) |
| 32 | ffmpeg -i input.mp4 -i new_audio.aac -c:v copy -c:a copy -map 0:v:0 -map 1:a:0 output.mp4 |
替换视频中的音频流(保留原视频) |
| 33 | ffmpeg -i input.mp4 -c:v mpeg2video -c:a mp2 output.mpg |
视频转 MPEG-2 编码(DVD 制作常用) |
| 34 | ffmpeg -i input.mp4 -c:v flv1 -c:a mp3 output.flv |
视频转 FLV 格式(旧版流媒体) |
| 35 | ffmpeg -i input.mp4 -aspect 16:9 -c:v libx264 output.mp4 |
设置视频宽高比为 16:9 |
| 36 | ffmpeg -i input.mp4 -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:v libx264 output.mp4 |
缩放视频并添加黑边填充到 1280x720(保持宽高比) |
| 37 | ffmpeg -i input.mp4 -vf "crop=1280:720:0:0" -c:v libx264 output.mp4 |
裁剪视频(从左上角开始,裁剪 1280x720 区域) |
| 38 | ffmpeg -i input.mp4 -vf yadif -c:v libx264 output.mp4 |
去隔行扫描(将隔行视频转为逐行) |
| 39 | ffmpeg -i input.mp4 -c:v libx264 -preset fast output.mp4 |
H.264 编码预设(fast 为快速,可选 ultrafast/superfast/veryfast/faster/fast/medium/slow/slower/veryslow) |
| 40 | ffmpeg -i input.mp4 -c:v libx264 -tune film output.mp4 |
H.264 编码调优(film 适合电影,可选 animation/grain/stillimage/psnr/ssim/fastdecode/zerolatency) |
| 41 | ffmpeg -i input.mp4 -vf "transpose=1" -c:v libx264 output.mp4 |
视频顺时针旋转 90 度(transpose=0:逆时针90, 1:顺时针90, 2:顺时针180, 3:逆时针180) |
| 42 | ffmpeg -i input.mp4 -vf hflip -c:v libx264 output.mp4 |
视频水平翻转 |
| 43 | ffmpeg -i input.mp4 -vf vflip -c:v libx264 output.mp4 |
视频垂直翻转 |
| 44 | ffmpeg -i input.mp4 -c:v libx264 -pix_fmt yuv420p output.mp4 |
设置像素格式为 YUV420P(兼容大多数播放器) |
| 45 | ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 -c:v libx264 output.mp4 |
从第 10 秒开始,截取 20 秒的视频(重新编码) |
| 46 | ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c:v libx264 output.mp4 |
从第 10 秒到第 30 秒截取视频(重新编码) |
| 47 | ffmpeg -ss 00:00:10 -i input.mp4 -t 00:00:20 -c copy output.mp4 |
快速截取视频(先定位再输入,不重新编码,速度快但可能不精确) |
| 48 | ffmpeg -i input.mp4 -c:v libx264 -maxrate 2M -bufsize 4M output.mp4 |
设置视频最大码率 2Mbps,缓冲区 4Mbps(适合流媒体) |
| 49 | ffmpeg -i input.mp4 -c:v libx264 -minrate 1M -maxrate 3M output.mp4 |
设置视频码率范围 1-3Mbps |
| 50 | ffmpeg -i input.mp4 -vf "fps=10" -c:v libx264 output.mp4 |
降低视频帧率到 10fps(减小体积) |
| 51 | ffmpeg -i input.mp4 -c:v libx264 -g 30 output.mp4 |
设置关键帧间隔为 30(每 30 帧一个关键帧,适合流媒体) |
| 52 | ffmpeg -i input.mp4 -c:v libx264 -refs 3 output.mp4 |
设置参考帧数量为 3(平衡画质和编码速度) |
| 53 | ffmpeg -i input.mp4 -c:v libx264 -level 4.1 output.mp4 |
设置 H.264 编码级别为 4.1(兼容特定设备) |
| 54 | ffmpeg -i input.mp4 -c:v libx264 -profile:v high output.mp4 |
设置 H.264 编码 profile 为 high(画质更高,可选 baseline/main/high) |
| 55 | ffmpeg -i input.mp4 -vf "unsharp" -c:v libx264 output.mp4 |
视频锐化(简单锐化滤镜) |
三、音频处理(35条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 56 | ffmpeg -i input.mp4 -vn -c:a libmp3lame output.mp3 |
从视频中提取音频为 MP3(去除视频) |
| 57 | ffmpeg -i input.mp4 -vn -c:a aac output.aac |
从视频中提取音频为 AAC |
| 58 | ffmpeg -i input.mp4 -vn -c:a pcm_s16le output.wav |
从视频中提取音频为 WAV(无损) |
| 59 | ffmpeg -i input.mp3 -c:a aac output.aac |
MP3 转 AAC |
| 60 | ffmpeg -i input.wav -c:a libmp3lame -b:a 320k output.mp3 |
WAV 转 320kbps MP3 |
| 61 | ffmpeg -i input.mp3 -filter:a "volume=1.5" output.mp3 |
音频音量增加 1.5 倍(1.0 为原音量) |
| 62 | ffmpeg -i input.mp3 -filter:a "volume=0.8" output.mp3 |
音频音量降低到 0.8 倍 |
| 63 | ffmpeg -i input.mp3 -filter:a "loudnorm" output.mp3 |
音频归一化(自动调整音量到标准水平) |
| 64 | ffmpeg -i input.mp4 -vn -c:a copy output.aac |
提取音频流(不重新编码,速度快) |
| 65 | ffmpeg -i input.mp4 -i new_audio.mp3 -c:v copy -c:a libmp3lame -map 0:v:0 -map 1:a:0 output.mp4 |
替换视频音频(重新编码音频) |
| 66 | `ffmpeg -i "concat:input1.mp3 | input2.mp3 |
| 67 | ffmpeg -i input.mp3 -ss 00:00:10 -t 00:00:20 -c:a libmp3lame output.mp3 |
截取音频片段(从第 10 秒开始,截取 20 秒) |
| 68 | ffmpeg -i input.mp3 -ac 1 -c:a libmp3lame output.mp3 |
立体声转单声道 |
| 69 | ffmpeg -i input.mp3 -ac 2 -c:a libmp3lame output.mp3 |
单声道转立体声 |
| 70 | ffmpeg -i input.mp3 -ar 48000 -c:a libmp3lame output.mp3 |
调整音频采样率为 48000Hz |
| 71 | ffmpeg -i input.mp3 -b:a 192k -c:a libmp3lame output.mp3 |
设置音频比特率为 192kbps |
| 72 | ffmpeg -i input.mp3 -filter:a "afade=t=in:ss=0:d=3,afade=t=out:st=27:d=3" output.mp3 |
音频淡入 3 秒,淡出 3 秒(总时长 30 秒) |
| 73 | ffmpeg -i input.mp3 -filter:a "silenceremove=1:0:-50dB" output.mp3 |
去除音频开头的静音部分(-50dB 为静音阈值) |
| 74 | ffmpeg -i input.mp3 -c:a flac output.flac |
音频转 FLAC 无损格式 |
| 75 | ffmpeg -i input.mp3 -c:a libvorbis output.ogg |
音频转 OGG 格式 |
| 76 | ffmpeg -i input.mp3 -c:a aac -b:a 256k output.m4a |
音频转 M4A 格式 |
| 77 | ffmpeg -i input.mp3 -filter:a "atempo=1.5" output.mp3 |
音频 1.5 倍速(不变调,atempo 范围 0.5-2.0) |
| 78 | ffmpeg -i input.mp3 -filter:a "asetrate=44100*1.2,aresample=44100" output.mp3 |
音频升调(1.2 倍频率,相当于升 3 个半音) |
| 79 | ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex "amix=inputs=2:duration=first:dropout_transition=3" output.mp3 |
混合两个音频(amix 滤镜,inputs 为输入数量) |
| 80 | `ffmpeg -i input.mp3 -filter:a "pan=mono | c0=c0" output.mp3` |
| 81 | `ffmpeg -i input.mp3 -filter:a "pan=mono | c0=c1" output.mp3` |
| 82 | ffmpeg -i input.mp3 -filter:a "channelmap=channel_layout=stereo:map=1:0" output.mp3 |
交换左右声道 |
| 83 | ffmpeg -i input.wav -c:a amr_nb -ar 8000 -ac 1 -b:a 12.2k output.amr |
音频转 AMR 格式(手机铃声) |
| 84 | ffmpeg -i input.mp3 -c:a wmav2 output.wma |
音频转 WMA 格式 |
| 85 | ffmpeg -i input.mp3 -filter:a "afftdn" output.mp3 |
音频降噪(afftdn 滤镜,简单降噪) |
| 86 | ffmpeg -i input.mp3 -c:a libmp3lame -q:a 2 output.mp3 |
MP3 可变码率编码(VBR,q:a 0-9,0 最高质量) |
| 87 | ffmpeg -i input.mp3 -filter:a "showinfo" -f null /dev/null |
查看音频帧信息(调试用) |
| 88 | ffmpeg -i input.mp3 -ss 00:00:00 -t 00:00:10 -c:a pcm_s16le output.wav |
截取前 10 秒音频为 WAV |
| 89 | ffmpeg -i input.mp4 -vn -c:a libopus -b:a 128k output.opus |
提取音频为 Opus 格式(低延迟,适合语音) |
| 90 | ffmpeg -i input.mp3 -filter:a "compand" output.mp3 |
音频动态压缩(平衡音量差异) |
四、视频剪辑与合并(20条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 91 | ffmpeg -i input.mp4 -ss 00:01:00 -t 00:02:00 -c copy output.mp4 |
快速截取视频(从第 1 分钟开始,截取 2 分钟,不重新编码) |
| 92 | ffmpeg -i input.mp4 -ss 00:01:00 -to 00:03:00 -c:v libx264 -c:a aac output.mp4 |
精确截取视频(重新编码,时间更准确) |
| 93 | ffmpeg -i input.mp4 -vf "trim=start=10:end=30,setpts=PTS-STARTPTS" -af "atrim=start=10:end=30,asetpts=PTS-STARTPTS" -c:v libx264 -c:a aac output.mp4 |
用滤镜精确截取视频(处理复杂时间线) |
| 94 | ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4 |
合并多个视频(filelist.txt 格式:file 'input1.mp4',格式需一致) |
| 95 | `ffmpeg -i "concat:input1.mp4 | input2.mp4 |
| 96 | ffmpeg -i input.mp4 -c copy -segment_time 60 -f segment output_%03d.mp4 |
分割视频为每 60 秒一个片段(不重新编码) |
| 97 | ffmpeg -i input.mp4 -c:v libx264 -c:a aac -segment_time 60 -f segment output_%03d.mp4 |
分割视频为每 60 秒一个片段(重新编码,更稳定) |
| 98 | ffmpeg -i input.mp4 -ss 00:00:00 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -t 00:00:30 -c copy part2.mp4 |
一次性分割视频为多个片段(不重新编码) |
| 99 | ffmpeg -i input.mp4 -vf "select='between(t,10,30)',setpts=N/FRAME_RATE/TB" -af "aselect='between(t,10,30)',asetpts=N/SR/TB" -c:v libx264 -c:a aac output.mp4 |
按时间选择视频片段(select 滤镜) |
| 100 | ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" -c:v libx264 output.mp4 |
合并视频和图片水印(同时处理剪辑和水印) |
| 101 | ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f segment -segment_list list.m3u8 -segment_time 10 output_%03d.ts |
分割视频为 HLS 分片(适合流媒体) |
| 102 | ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -c:v libx264 -c:a aac output.mp4 |
合并不同格式的视频(重新编码,concat 滤镜) |
| 103 | ffmpeg -i input.mp4 -vf "fade=in:0:30,fade=out:270:30" -c:v libx264 output.mp4 |
视频淡入 30 帧,淡出 30 帧(总时长 300 帧) |
| 104 | ffmpeg -i input.mp4 -vf "fade=t=in:st=0:d=3,fade=t=out:st=27:d=3" -c:v libx264 output.mp4 |
视频淡入 3 秒,淡出 3 秒(总时长 30 秒) |
| 105 | ffmpeg -i input.mp4 -ss 00:00:10 -i input.mp4 -c copy -map 1:v:0 -map 1:a:0 -t 00:00:20 output.mp4 |
精确截取视频(双输入法,时间更准) |
| 106 | ffmpeg -i input.mp4 -c:v libx264 -c:a aac -ss 00:00:10 -t 00:00:20 -avoid_negative_ts 1 output.mp4 |
避免截取视频的负时间戳(兼容播放器) |
| 107 | ffmpeg -i input.mp4 -vf "crop=iw:ih-100:0:50" -c:v libx264 output.mp4 |
裁剪视频上下各 50 像素(iw=输入宽,ih=输入高) |
| 108 | ffmpeg -i input.mp4 -vf "scale=iw/2:ih/2" -c:v libx264 output.mp4 |
视频分辨率缩小一半(保持宽高比) |
| 109 | ffmpeg -i input.mp4 -vf "scale=2*iw:2*ih" -c:v libx264 output.mp4 |
视频分辨率放大一倍(可能损失画质) |
| 110 | ffmpeg -i input.mp4 -c:v libx264 -c:a aac -movflags +faststart output.mp4 |
优化 MP4 为流式播放(将元数据移到文件开头) |
五、水印与字幕(20条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 111 | ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" -c:v libx264 output.mp4 |
添加图片水印到左上角(10,10 为坐标) |
| 112 | ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=main_w-overlay_w-10:10" -c:v libx264 output.mp4 |
添加图片水印到右上角 |
| 113 | ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:main_h-overlay_h-10" -c:v libx264 output.mp4 |
添加图片水印到左下角 |
| 114 | ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" -c:v libx264 output.mp4 |
添加图片水印到右下角 |
| 115 | ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -c:v libx264 output.mp4 |
添加图片水印到中心 |
| 116 | ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10:enable='between(t,0,10)'" -c:v libx264 output.mp4 |
水印仅在 0-10 秒显示 |
| 117 | ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v]scale=100:50[logo];[0:v][logo]overlay=10:10" -c:v libx264 output.mp4 |
先缩放水印到 100x50,再添加到左上角 |
| 118 | ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v]format=rgba,colorchannelmixer=aa=0.5[logo];[0:v][logo]overlay=10:10" -c:v libx264 output.mp4 |
添加半透明水印(透明度 0.5) |
| 119 | ffmpeg -i input.mp4 -vf "drawtext=text='Hello World':x=10:y=10:fontsize=24:fontcolor=white" -c:v libx264 output.mp4 |
添加文字水印到左上角(需安装 libfreetype) |
| 120 | ffmpeg -i input.mp4 -vf "drawtext=text='Hello World':x=w-tw-10:y=10:fontsize=24:fontcolor=white" -c:v libx264 output.mp4 |
添加文字水印到右上角 |
| 121 | ffmpeg -i input.mp4 -vf "drawtext=text='%{localtime\:%Y-%m-%d %H\\:%M\\:%S}':x=10:y=10:fontsize=24:fontcolor=white" -c:v libx264 output.mp4 |
添加实时时间文字水印 |
| 122 | ffmpeg -i input.mp4 -vf "drawtext=text='Frame %{n}':x=10:y=h-th-10:fontsize=24:fontcolor=white" -c:v libx264 output.mp4 |
添加帧号文字水印到左下角 |
| 123 | ffmpeg -i input.mp4 -i subtitle.srt -c:v libx264 -c:a aac -c:s mov_text output.mp4 |
添加软字幕(字幕嵌入视频流,可开关) |
| 124 | ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" -c:v libx264 -c:a aac output.mp4 |
硬编码字幕(字幕烧录到视频,不可开关) |
| 125 | ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt:fontsize=24:fontcolor=white" -c:v libx264 -c:a aac output.mp4 |
硬编码字幕并设置字体大小和颜色 |
| 126 | ffmpeg -i input.mp4 -i subtitle.ass -vf "ass=subtitle.ass" -c:v libx264 -c:a aac output.mp4 |
硬编码 ASS 字幕(支持复杂样式) |
| 127 | ffmpeg -i input.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10,subtitles=subtitle.srt" -c:v libx264 -c:a aac output.mp4 |
同时添加图片水印和硬编码字幕 |
| 128 | ffmpeg -i input.mp4 -map 0:v:0 -map 0:a:0 -map 0:s:0 -c:v copy -c:a copy -c:s copy output.mp4 |
提取视频中的所有字幕流(保留原编码) |
| 129 | ffmpeg -i input.mp4 -i subtitle.srt -c:v copy -c:a copy -c:s srt -map 0:v:0 -map 0:a:0 -map 1:s:0 output.mp4 |
替换视频中的字幕流 |
| 130 | ffmpeg -i input.mp4 -vf "drawtext=text='Watermark':x=10:y=10:fontsize=24:fontcolor=white:shadowx=2:shadowy=2:shadowcolor=black" -c:v libx264 output.mp4 |
添加带阴影的文字水印 |
六、截图与缩略图(15条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 131 | ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.jpg |
截取第 10 秒的单张截图 |
| 132 | ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 -q:v 2 output.jpg |
截取高质量截图(q:v 2-31,2 最高) |
| 133 | ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 -s 1280x720 output.jpg |
截取截图并调整分辨率为 1280x720 |
| 134 | ffmpeg -i input.mp4 -vf "fps=1" -q:v 2 output_%03d.jpg |
每秒截取一张截图(批量截图) |
| 135 | ffmpeg -i input.mp4 -vf "fps=1/60" -q:v 2 output_%03d.jpg |
每 60 秒截取一张截图 |
| 136 | ffmpeg -i input.mp4 -ss 00:00:00 -t 00:01:00 -vf "fps=1" -q:v 2 output_%03d.jpg |
前 1 分钟内每秒截取一张截图 |
| 137 | ffmpeg -i input.mp4 -vf "thumbnail,scale=320:240" -vframes 1 thumbnail.jpg |
生成视频缩略图(thumbnail 滤镜自动选帧) |
| 138 | ffmpeg -i input.mp4 -vf "select=eq(pict_type\,I),scale=320:240" -vframes 5 -q:v 2 thumbnail_%03d.jpg |
截取 5 张关键帧作为缩略图 |
| 139 | `ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 -f image2pipe -vcodec png - | cat > output.png` |
| 140 | ffmpeg -i input.mp4 -vf "crop=100:100:10:10" -ss 00:00:10 -vframes 1 output.jpg |
截取视频并裁剪为 100x100 区域 |
| 141 | ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 -pix_fmt rgb24 output.bmp |
截取 BMP 格式截图 |
| 142 | ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 -vf "eq=brightness=0.1" output.jpg |
截取截图并调整亮度(brightness 0.1 为稍亮) |
| 143 | ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 -vf "eq=contrast=1.2" output.jpg |
截取截图并调整对比度(contrast 1.2 为稍高) |
| 144 | ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1" -t 10 output.gif |
生成 10 秒 GIF(10fps,宽度 320,高度自适应) |
| 145 | ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:05 -vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif |
生成高质量 GIF(先调色板再合成) |
七、屏幕录制与摄像头(10条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 146 | ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0 -c:v libx264 output.mp4 |
Linux 下录制屏幕(30fps,1920x1080) |
| 147 | ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 output.mp4 |
Windows 下录制屏幕(gdigrab 设备) |
| 148 | ffmpeg -f avfoundation -framerate 30 -i "1" -c:v libx264 output.mp4 |
macOS 下录制屏幕(avfoundation 设备,"1" 为屏幕设备) |
| 149 | ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0 -f pulse -i default -c:v libx264 -c:a aac output.mp4 |
Linux 下录制屏幕+系统声音(pulse 音频设备) |
| 150 | ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="麦克风" -c:v libx264 -c:a aac output.mp4 |
Windows 下录制屏幕+麦克风声音(dshow 音频设备) |
| 151 | ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 output.mp4 |
Linux 下录制摄像头(v4l2 设备) |
| 152 | ffmpeg -f dshow -i video="摄像头" -c:v libx264 output.mp4 |
Windows 下录制摄像头(dshow 视频设备) |
| 153 | ffmpeg -f avfoundation -framerate 30 -i "0" -c:v libx264 output.mp4 |
macOS 下录制摄像头(avfoundation 设备,"0" 为摄像头) |
| 154 | ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0 -c:v libx264 -preset ultrafast output.mp4 |
快速录制屏幕(ultrafast 预设,低延迟) |
| 155 | ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx265 -crf 28 output.mp4 |
Windows 下录制屏幕并压缩(H.265 编码,体积小) |
八、滤镜应用(25条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 156 | ffmpeg -i input.mp4 -vf "scale=1280:720" -c:v libx264 output.mp4 |
视频缩放滤镜(scale) |
| 157 | ffmpeg -i input.mp4 -vf "crop=1280:720:0:0" -c:v libx264 output.mp4 |
视频裁剪滤镜(crop) |
| 158 | ffmpeg -i input.mp4 -vf "transpose=1" -c:v libx264 output.mp4 |
视频旋转滤镜(transpose) |
| 159 | ffmpeg -i input.mp4 -vf "hflip" -c:v libx264 output.mp4 |
视频水平翻转滤镜(hflip) |
| 160 | ffmpeg -i input.mp4 -vf "vflip" -c:v libx264 output.mp4 |
视频垂直翻转滤镜(vflip) |
| 161 | ffmpeg -i input.mp4 -vf "eq=brightness=0.1:contrast=1.2:saturation=1.1" -c:v libx264 output.mp4 |
视频调色滤镜(eq,调整亮度/对比度/饱和度) |
| 162 | ffmpeg -i input.mp4 -vf "unsharp=lx=5:ly=5:la=1.0" -c:v libx264 output.mp4 |
视频锐化滤镜(unsharp) |
| 163 | ffmpeg -i input.mp4 -vf "boxblur=luma_radius=2:luma_power=1" -c:v libx264 output.mp4 |
视频模糊滤镜(boxblur) |
| 164 | ffmpeg -i input.mp4 -vf "delogo=x=10:y=10:w=100:h=50" -c:v libx264 output.mp4 |
视频去水印滤镜(delogo,简单模糊覆盖) |
| 165 | ffmpeg -i input.mp4 -vf "fade=in:0:30,fade=out:270:30" -c:v libx264 output.mp4 |
视频淡入淡出滤镜(fade) |
| 166 | ffmpeg -i input.mp4 -vf "drawbox=x=10:y=10:w=100:h=50:color=red:thickness=2" -c:v libx264 output.mp4 |
视频绘制矩形滤镜(drawbox) |
| 167 | ffmpeg -i input.mp4 -vf "drawtext=text='Hello':x=10:y=10:fontsize=24:fontcolor=white" -c:v libx264 output.mp4 |
视频绘制文字滤镜(drawtext) |
| 168 | ffmpeg -i input.mp4 -vf "overlay=10:10" -i logo.png -c:v libx264 output.mp4 |
视频叠加滤镜(overlay,用于水印) |
| 169 | ffmpeg -i input.mp4 -vf "select='gt(scene\,0.3)',setpts=N/FRAME_RATE/TB" -c:v libx264 output.mp4 |
视频场景切换检测滤镜(select,scene 0.3 为阈值) |
| 170 | ffmpeg -i input.mp4 -vf "blackdetect=d=2:pix_th=0.1" -f null /dev/null |
检测视频中的黑色片段(blackdetect,d=2 为最小时长) |
| 171 | ffmpeg -i input.mp4 -vf "silencedetect=n=-50dB:d=2" -f null /dev/null |
检测音频中的静音片段(silencedetect) |
| 172 | ffmpeg -i input.mp4 -vf "showinfo" -f null /dev/null |
显示视频帧信息(showinfo,调试用) |
| 173 | ffmpeg -i input.mp4 -vf "histogram" -f null /dev/null |
生成视频直方图(histogram,调试用) |
| 174 | ffmpeg -i input.mp4 -vf "colorbalance=rs=0.1:gs=-0.1:bs=0.1" -c:v libx264 output.mp4 |
视频色彩平衡滤镜(colorbalance) |
| 175 | ffmpeg -i input.mp4 -vf "chromakey=color=green:similarity=0.1" -c:v libx264 output.mp4 |
视频绿幕抠图滤镜(chromakey) |
| 176 | ffmpeg -i input.mp4 -vf "tblend=all_mode=overlay" -c:v libx264 output.mp4 |
视频帧混合滤镜(tblend) |
| 177 | ffmpeg -i input.mp4 -vf "minterpolate=fps=60" -c:v libx264 output.mp4 |
视频插帧滤镜(minterpolate,30fps 转 60fps) |
| 178 | ffmpeg -i input.mp4 -vf "deshake" -c:v libx264 output.mp4 |
视频防抖滤镜(deshake) |
| 179 | ffmpeg -i input.mp4 -vf "deflicker" -c:v libx264 output.mp4 |
视频去闪烁滤镜(deflicker) |
| 180 | ffmpeg -i input.mp4 -vf "noise=alls=10:allf=t" -c:v libx264 output.mp4 |
视频添加噪点滤镜(noise) |
九、流媒体与推流(10条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 181 | ffmpeg -re -i input.mp4 -c:v libx264 -c:a aac -f flv rtmp://server/live/stream |
推流到 RTMP 服务器(-re 按帧率发送) |
| 182 | ffmpeg -i rtmp://server/live/stream -c copy output.mp4 |
从 RTMP 服务器拉流并保存为 MP4 |
| 183 | ffmpeg -re -i input.mp4 -c:v libx264 -c:a aac -hls_time 10 -hls_list_size 0 output.m3u8 |
生成 HLS 流媒体(m3u8 播放列表+ts 分片) |
| 184 | ffmpeg -re -i input.mp4 -c:v libx264 -c:a aac -f dash output.mpd |
生成 DASH 流媒体(mpd 播放列表) |
| 185 | ffmpeg -f v4l2 -i /dev/video0 -f pulse -i default -c:v libx264 -c:a aac -f flv rtmp://server/live/stream |
摄像头+麦克风推流到 RTMP |
| 186 | ffmpeg -i rtmp://server/live/stream -c:v libx264 -c:a aac -f segment -segment_time 60 output_%03d.mp4 |
拉流并分割为每 60 秒一个文件 |
| 187 | ffmpeg -re -i input.mp4 -c:v libx264 -preset ultrafast -tune zerolatency -f flv rtmp://server/live/stream |
低延迟推流(ultrafast+zerolatency) |
| 188 | ffmpeg -i http://server/stream.m3u8 -c copy output.mp4 |
从 HLS 流拉流并保存 |
| 189 | ffmpeg -re -i input.mp4 -c:v libvpx-vp9 -c:a libopus -f webm rtmp://server/live/stream |
VP9+Opus 推流到 RTMP |
| 190 | ffmpeg -i rtmp://server/live/stream -vf "drawtext=text='Live':x=10:y=10:fontsize=24:fontcolor=white" -c:v libx264 -c:a aac -f flv rtmp://server/live/stream2 |
拉流添加文字后再推流 |
十、其他常用(10条)
| 序号 | 命令 | 功能说明 |
|---|---|---|
| 191 | ffmpeg -i input.mp4 -c copy -bsf:v h264_mp4toannexb output.h264 |
提取 H.264 裸流(MP4 转 Annex-B 格式) |
| 192 | ffmpeg -i input.h264 -i input.aac -c copy output.mp4 |
合并 H.264 裸流和 AAC 音频为 MP4 |
| 193 | ffmpeg -i input.mp4 -map_metadata -1 -c copy output.mp4 |
去除视频元数据(如标题、作者) |
| 194 | ffmpeg -i input.mp4 -metadata title="My Video" -c copy output.mp4 |
设置视频标题元数据 |
| 195 | ffmpeg -i input.mp4 -c:v libx264 -c:a aac -y output.mp4 |
强制覆盖输出文件(-y 参数) |
| 196 | ffmpeg -i input.mp4 -c:v libx264 -c:a aac -progress progress.log output.mp4 |
输出进度到日志文件(progress.log) |
| 197 | ffmpeg -i input.mp4 -vf "showwavespic=s=640x120" -frames:v 1 waveform.png |
生成音频波形图 |
| 198 | ffmpeg -i input.mp4 -vf "select=eq(n\,100)" -vframes 1 frame_100.jpg |
截取第 100 帧 |
| 199 | ffmpeg -i input.mp4 -c:v libx264 -c:a aac -threads 4 output.mp4 |
指定 4 线程编码(加速) |
| 200 | ffmpeg -h full |
查看 FFmpeg 完整帮助文档 |