学了一个晚上,下面是我写的批处理
window命令行批处理直接拖文件夹或者拖动视频或者拖动音频可一键生成mp4.或者批量生成图片,或者生成gif
https://download.csdn.net/download/u010042660/10282760
2018/03/12 20:27 369 去掉音频.bat
2018/03/12 20:35 653 去掉音频姿势1 - 副本.bat
2018/03/12 20:35 653 去掉音频姿势1.bat
2018/03/12 20:58 306 命令提示.bat
2018/03/12 21:50 407 将文件夹image-5位数.jpeg图片转换为视频.bat
2018/03/12 21:56 465 将文件夹image-5位数.jpeg图片转换为视频每秒8帧.bat
2018/03/12 22:02 717 将文件夹image-5位数.jpeg图片转换为视频每秒8帧指定码率200清晰度.bat
2018/03/12 21:14 444
帧视频批量转换jpeg所有慎用.bat
2018/03/12 20:26 400 截取视频前15秒.bat
2018/03/12 22:41 498 拖拽文件夹图片和test.mp3合成为mp4.bat
2018/03/12 20:24 403 生成30帧转gif.bat
2018/03/12 21:03 391 视频中截帧变jpg指定分辨率.bat
2018/03/12 21:19 541 视频批量转换jpeg15秒开始抽取15帧.bat
2018/03/12 21:23 583 视频批量转换jpeg只抽取5秒从5秒开始-5张图.bat
2018/03/12 20:55 420 视频提取gif指定分辨率9秒还不错.bat
2018/03/12 20:53 521 视频文件转提取前20秒.bat
2018/03/12 21:34 735 调整视频分辨率Linux.bat
2018/03/12 22:24 732 音频图片test.jpg合并为新的视频.bat
官方可执行文件包:
https://ffmpeg.zeranoe.com/builds/
文档
http://ffmpeg.org/ffmpeg.html
选择window版本即可 建议配置环境变量,不然我这批处理要放到和ffmpeg文件在同一个地方..
我下载的是ffmpeg-20180312-939440a-win64-static文件包
ffmpeg加图片水印
ffmpeg -i video.mp4 -i test.png -c copy -filter_complex overlay=0:0 -y xx.mp4
之前测试,输出之后竟然视频卡在第一帧,郁闷了 原来是overlay=0:0后面加了一个:1的原因,不需要填写,我还以为设置透明度支持的呢.实际上就这样就可以
0:0代表x,和y参数.
ffmpeg加文字水印
ffmpeg -i %file% -vf "drawtext=fontfile=test.ttf:text='情随事迁666':x=0:y=0:fontsize=24:fontcolor=yellow:shadowy=2" -y %out%
加文字批处理文件如下
@echo off
::作者情随事迁 [email protected] http://github.com/qssq
cls
:start
set file=%1
if "%file%"=="" echo 没有文件&pause&goto end
echo 正在对%file%进行处理
echo %file%|findstr ".mp4" >nul
if %errorlevel% equ 0 (
set out=%file:~0,-4%_new.mp4
) else (v
set out=new_%file%.mp4
)
echo 输出目录%out%
::-vcodec copy
ffmpeg -i %file% -vf "drawtext=fontfile=test.ttf:text='情随事迁666':x=0:y=0:fontsize=24:fontcolor=yellow:shadowy=2" -y %out%
pause
:end
探索:好像必须设置字体,不然各种错误,那么安卓系统就蛋疼了,如何使用系统字体并且不会受权限影响呢???
window尝试使用
ffmpeg -i %file% -vf "drawtext=text='情随事迁666':x=0:y=0:fontsize=24:fontcolor=yellow:shadowy=2" -y %out%
Cannot find a valid font for the family Sans
[AVFilterGraph @ 000002417b436500] Error initializing filter 'drawtext' with args 'text=鎯呴殢浜嬭縼666:x=0:y=0:fontsize=24:fontcolor=yellow:shadowy=2'
Error reinitializing filters!
Failed to inject frame into filter network: No such file or directory
参考
具体参数详情请看https://ffmpeg.org/ffmpeg-filters.html
`
添加动态gif
ffmpeg -y -i %file% -ignore_loop 0 -i test.gif -ss 00 -t 5000 -filter_complex overlay=0:0:1 %out%
ignore_loop
是否循环添加默认为帧
ss
开始的秒
t
总时长
overlay=0:0:1
x,y,是否支持透明通道 1表示支持
添加图片文字水印一起添加提升效率
网上找到了文字和图片一起添加的,但是结果很不理想 估计是推荐转换为ts然后批量合并.
缩放gif 下面括号的内容可以不删除,语法照样支持的.
ffmpeg -y -i movie.mkv -ignore_loop 0 -i movieGif.gif -ss 0 -t 100 -filter_complex '[0:0]scale=iw:ih[firstInput]; [1:0]scale=iw/4:ih/4[secondInput]; [firstInput][secondInput]overlay=0:0:1' movieScaleGif.mp4
视频合成
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy outputMovie.mpg
多段合成的优化
ffmpeg -i input1 -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts
ffmpeg -i input2 -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts
ffmpeg -i input3 -c copy -bsf:v h264_mp4toannexb -f mpegts input3.ts
ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart output
具体参考
http://blog.csdn.net/doublefi123/article/details/47276739
裁剪和缩放实现视频海报区域
@echo off
::作者情随事迁 [email protected] http://github.com/qssq
cls
:start
set file=%1
if "%file%"=="" echo 没有文件&pause&goto end
echo 正在对%file%进行处理
echo %file%|findstr ".mp4" >nul
if %errorlevel% equ 0 (
set out=%file:~0,-4%_new.mp4
set scaleout=%file:~0,-4%_crop.mp4
) else (
set scaleout=%file:~0,-4%_crop.mp4
set out=new_%file%.mp4
)
set width=150
set height=266
echo 输出目录%out%
::先缩放各位知道同时进行绘制图片和文字 以及同时缩放并裁剪 一条命令能搞定的朋友请指导,我尝试是不行的,会提示不能这样操作
ffmpeg -y -i %file% -vf scale=%width%:%height% %scaleout%
ffmpeg -y -i %scaleout% -vf crop=%width%:%height% %out%
pause
:end
滚动字幕实现
左右滚动的字幕:
./ffmpeg -i hello.mp4 -b:v 500K -vf drawtext=”fontfile=mpp.ttf:fontcolor=0xaaff00:fontsize=18:shadowy=0:\x=’if(gte(t,2), (main_w-mod(t*50,main_w)), NAN)’:y=(main_h-line_h-10):text=’关注广州小程,提升专业技能。’” hello.mp4
固定位置的字幕(这里加了两行):
./ffmpeg -i ~/Desktop/hello.mp4 -b:v 500K -vf “drawtext=fontfile=/Library/Fonts/华文黑体.ttf:fontcolor=yellow:fontsize=20:shadowy=0:x=(w-tw)/2-30:y=(main_h-line_h-50):text=”qssqqqqqq”,drawtext=fontfile=mpp.ttf:fontcolor=0xaaff00:fontsize=18:shadowy=0:x=(w-tw)/2-30:y=(main_h-line_h-20):text=’test’” hello1.mp4