
1. FFmpeg快速入门安装与基础操作第一次接触FFmpeg时我完全被它复杂的参数吓到了。但实际用下来发现只要掌握几个核心命令就能解决80%的日常需求。先说说安装Windows用户可以直接从官网下载编译好的二进制包解压后把bin目录加入系统PATH。Mac用户用Homebrew一句命令搞定brew install ffmpeg验证安装是否成功ffmpeg -version看到版本信息输出就说明环境准备好了。我建议新手先熟悉这三个基础命令结构# 基础格式转换自动编码 ffmpeg -i input.mp4 output.avi # 无损转换仅改变容器格式 ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4 # 带参数的重编码转换 ffmpeg -i input.avi -c:v libx264 -crf 23 -preset fast output.mp4-c:v copy这个参数特别实用它表示视频流直接复制不重新编码处理速度能快10倍以上。有次我需要把监控录像的MKV文件批量转MP4用这个参数几分钟就搞定了200多个文件。2. 流媒体处理实战技巧2.1 RTSP流录制与分段存储处理监控摄像头流时我经常用这个命令把RTSP流切成10分钟一段的MP4文件ffmpeg -i rtsp://admin:password192.168.1.64:554/Streaming/Channels/101 \ -c:v copy -f segment -segment_time 600 -reset_timestamps 1 \ -strftime 1 output_%Y%m%d_%H%M%S.mp4这里有几个实用技巧-segment_time 600设置每个片段10分钟600秒-reset_timestamps 1让每个片段从0开始计时-strftime 1在文件名中加入时间戳如果网络不稳定可以加-rtsp_transport tcp参数2.2 直播流多分辨率转码去年给学校做直播系统时需要同时生成不同分辨率的流ffmpeg -i rtmp://live.example.com/input \ -filter_complex [0:v]split3[v1][v2][v3]; \ [v1]scale1280:720[vout1]; \ [v2]scale854:480[vout2]; \ [v3]scale640:360[vout3] \ -map [vout1] -c:v:0 libx264 -b:v:0 4000k -preset fast \ -map [vout2] -c:v:1 libx264 -b:v:1 2000k -preset fast \ -map [vout3] -c:v:2 libx264 -b:v:2 1000k -preset fast \ -map 0:a -c:a copy \ -f flv rtmp://server/live/720p \ -f flv rtmp://server/live/480p \ -f flv rtmp://server/live/360p这个命令做了三件事用split滤镜复制原始视频流分别缩放为720p/480p/360p用不同码率推送到不同直播地址3. 高级视频处理技巧3.1 画中画合成给产品演示视频添加摄像头画面ffmpeg -i main.mp4 -i pip.mp4 \ -filter_complex [1]scaleiw/4:ih/4 [pip]; \ [0][pip]overlaymain_w-overlay_w-10:10 \ -c:a copy output.mp4参数解析scaleiw/4:ih/4将画中画视频缩小为1/4大小overlaymain_w-overlay_w-10:10定位在右上角距右边10像素顶部10像素如果画中画需要透明背景可以先用colorkey滤镜去除背景色3.2 视频降噪与增强处理老电影素材时这套组合拳效果不错ffmpeg -i old_video.mp4 \ -vf hqdn3d4:3:6:4.5, \ unsharp5:5:1.0:5:5:0.0, \ eqbrightness0.06:saturation1.3 \ -c:a copy enhanced.mp4滤镜说明hqdn3d降噪参数依次是亮度/色度空间/时间强度unsharp锐化类似PS的USM锐化eq调整亮度/对比度/饱和度4. 音频处理与流合成4.1 多语言音轨合并给视频添加双语配音ffmpeg -i video.mp4 -i chinese.aac -i english.aac \ -map 0:v -map 1:a -map 2:a \ -metadata:s:a:0 languagechi \ -metadata:s:a:1 languageeng \ -c:v copy -c:a copy multilingual.mp4关键点-map选择需要的流0:v是第一个文件的视频流-metadata设置音轨语言标签播放器会根据系统语言自动选择合适音轨4.2 动态范围压缩处理会议录音时这个命令能让小声部分更清晰ffmpeg -i meeting.wav \ -af compandattacks0.3:decays0.8:points-80/-80|-30/-15|0/0 \ output.wavcompand参数详解attacks/decays控制压缩器响应速度points定义输入/输出电平映射曲线上述参数意思是-80dB以下完全静音-30dB提升到-15dB