面对剪映、PR等软件动辄数百元的会员费,FFmpeg这个免费神器能帮你省下大笔开支!更厉害的是,结合批量脚本,工作效率提升10倍!
为什么自媒体人必须学会FFmpeg? 省钱:完全免费,无需订阅任何会员
高效:批量处理100个视频,只需一个命令
强大:专业级视频处理能力,不输付费软件
快速上手:5分钟安装配置
一键安装包(Windows专属)
# 使用winget快速安装(Windows 10/11)
winget install Gyan.FFmpeg
# 或者下载绿色版,解压即用
# 访问 ffmpeg.org 下载最新版验证安装
ffmpeg -version看到版本信息即安装成功!
自媒体高频场景:一键搞定
创建 compress.bat 文件:
@echo off
chcp 65001 >nul
echo 开始批量压缩视频...
for %%i in (*.mp4) do (
echo 正在处理:%%i
ffmpeg -i "%%i" -crf 23 -preset medium "compressed_%%i"
)
echo 所有视频压缩完成!
pause双击运行,自动压缩文件夹内所有视频!
创建 watermark.bat:
@echo off
chcp 65001 >nul
set LOGO=watermark.png
for %%i in (*.mp4) do (
ffmpeg -i "%%i" -i "%LOGO%" -filter_complex "overlay=W-w-10:10" "watermarked_%%i"
)
echo 水印添加完成!
pause创建 vertical.bat:
@echo off
chcp 65001 >nul
for %%i in (*.mp4) do (
ffmpeg -i "%%i" -vf "scale=1080:1920:force_original_aspect_ratio=decrease:flags=lanczos,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black" -c:a copy "vertical_%%i"
)
echo 横屏转竖屏完成!
pause创建 extract_audio.bat:
@echo off
chcp 65001 >nul
for %%i in (*.mp4) do (
ffmpeg -i "%%i" -q:a 0 -map a "%%~ni.mp3"
)
echo 音频提取完成!
pause一键处理整个项目文件夹
创建 project_processor.bat:
@echo off
chcp 65001 >nul
set PROJECT_NAME=我的视频项目
set OUTPUT_DIR=输出结果
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
for %%i in (*.mp4 *.mov *.avi) do (
echo 正在处理: %%i
rem 压缩视频
ffmpeg -i "%%i" -crf 23 -preset medium "%OUTPUT_DIR%\compressed_%%i"
rem 生成缩略图
ffmpeg -i "%%i" -ss 00:00:05 -vframes 1 "%OUTPUT_DIR%\%%~ni_cover.jpg"
rem 生成预览GIF
ffmpeg -i "%%i" -t 5 -vf "fps=10,scale=320:-1" "%OUTPUT_DIR%\%%~ni_preview.gif"
)
echo 项目处理完成!文件保存在 %OUTPUT_DIR% 文件夹
pause创建 smart_optimize.bat:
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
set OUTPUT_DIR=optimized_videos
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
for %%i in (*.mp4) do (
echo 智能优化: %%i
rem 获取视频时长(秒)
for /f "delims=" %%t in ('ffprobe -v error -show_entries format^=duration -of default^=noprint_wrappers=1:nokey=1 "%%i"') do (
set duration=%%t
)
rem 使用延迟扩展比较时长(注意:duration 可能包含小数)
rem 将 duration 的整数部分提取用于比较
for /f "delims=." %%d in ("!duration!") do set dur_int=%%d
if defined dur_int (
if !dur_int! gtr 300 (
rem 长视频:较强压缩
ffmpeg -i "%%i" -crf 25 -preset medium -movflags +faststart "%OUTPUT_DIR%\%%i"
) else (
rem 短视频:高质量压缩
ffmpeg -i "%%i" -crf 22 -preset slow -movflags +faststart "%OUTPUT_DIR%\%%i"
)
) else (
rem 未获取到时长,默认使用短视频策略
ffmpeg -i "%%i" -crf 22 -preset slow -movflags +faststart "%OUTPUT_DIR%\%%i"
)
)
endlocal
echo 智能优化完成!
pause说明:
ffprobe的输出可能包含小数,本脚本取整数进行比较(更兼容if gtr)。如需更精确控制可改为在 PowerShell 中实现。
创建 douyin_processor.bat:
@echo off
chcp 65001 >nul
set PLATFORM=抖音
set MAX_SIZE=50M
for %%i in (*.mp4) do (
echo 为%PLATFORM%优化: %%i
ffmpeg -i "%%i" ^
-vf "scale=1080:1920:force_original_aspect_ratio=decrease:flags=lanczos,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black,drawtext=text='%PLATFORM%':x=20:y=20:fontsize=36:fontcolor=white:shadowcolor=black:shadowx=2:shadowy=2" ^
-c:a aac -b:a 128k ^
-movflags +faststart ^
"douyin_%%i"
)
echo %PLATFORM%视频优化完成!
pause创建 wechat_channel.bat:
@echo off
chcp 65001 >nul
for %%i in (*.mp4) do (
rem 微信视频号推荐参数
ffmpeg -i "%%i" ^
-vf "scale=1080:1920" -c:v libx264 -profile:v high -level 4.1 ^
-crf 21 -preset medium -maxrate 2000k -bufsize 4000k ^
-c:a aac -b:a 128k -ar 44100 ^
-movflags +faststart ^
"wechat_%%i"
)
pause@echo off
chcp 65001 >nul
set FOLDER=%date:~0,4%%date:~5,2%%date:~8,2%
if not exist "%FOLDER%" mkdir "%FOLDER%"
move processed_*.mp4 "%FOLDER%"@echo off
chcp 65001 >nul
echo ===============================
echo 批量视频处理工具
echo ===============================
echo.@echo off
chcp 65001 >nul
for %%i in (*.mp4) do (
ffmpeg -i "%%i" -crf 23 "processed_%%i" || (
echo 错误:处理文件 %%i 时出现问题
echo %%i >> error_log.txt
)
)创建 watch_folder.bat:
@echo off
chcp 65001 >nul
echo 监控开始,自动处理新文件...
:loop
for %%i in (待处理\*.mp4) do (
if exist "%%i" (
echo 发现新文件: %%~nxi
ffmpeg -i "%%i" -crf 23 "已完成\%%~nxi"
del "%%i"
)
)
timeout /t 10 >nul
goto loop说明:保持了你的原意 —— 每 10 秒扫描一次目录并处理新文件;注意确保
待处理、已完成文件夹存在或提前创建它们。
问题:批处理文件乱码
解决方案:文件另存为时选择 ANSI 编码 或 UTF-8 (无 BOM),脚本内使用 chcp 65001 >nul 帮助控制台显示中文。
问题:视频处理中断
for %%i in (*.mp4) do (
ffmpeg -i "%%i" "output_%%i" || echo 跳过文件: %%i
)问题:文件名含空格
for %%i in (*.mp4) do ffmpeg -i "%%i" "output_%%i"功能 | FFmpeg+脚本 | 付费软件 | 效率提升 |
|---|---|---|---|
批量压缩100个视频 | 1个命令,5分钟 | 手动操作,2小时 | 24倍 |
添加统一水印 | 批量处理,3分钟 | 逐个添加,1小时 | 20倍 |
格式转换 | 一键完成,2分钟 | 排队等待,30分钟 | 15倍 |
.bat 文件
别再为软件付费发愁!掌握 FFmpeg+批处理,你就能拥有:
✅ 永久免费的剪辑工具
✅ 批量处理的高效工作流
✅ 媲美专业软件的效果
✅ 完全可控的个性化设置
立即收藏这些脚本,让你的视频创作效率飞起来!
需要其他定制脚本或有问题咨询,欢迎在评论区留言~