在当前目录下实现flv至mp4格式的批量转换
bat脚本
for %%i in ("*.flv") do ffmpeg -i %%i -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" %%~ni.mp4
命令行
for %i in ("*.flv") do ffmpeg -i %i -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" %~ni.mp4
ffmpeg
flv至mp4的转换的简单形式
ffmpeg -i input.flv output.mp4
bat脚本中的for循环
在cmd窗口中:for %i in (command1) do command2
在批处理文件中:for %%i in (command1) do command2
%%i
是for中对形式变量的引用,即使变量i
在do
后的语句中没有参与语句的执行,也是必须出现的。
for循环提取command1中的一个元素,并将值赋给形式变量i
,再执行command2,此即完成一次循环,直至command1中的元素全被提取为止。
使用%%~ni
可以去除变量i
中的扩展名。
for %%i in ("*.flv") do ffmpeg -i %%i %%~ni.mp4
预防width / height not divisible by 2的错误出现
由于原flv文件的长或宽为奇数时,ffmpeg无法处理,因此需要增加如下内容,对pad的大小进行设置。
-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"
参考文献
Windows bat脚本——for循环用法详解(一)
ffmpeg转换flv为mp4
bat 批处理 命令快速入门
FFMPEG (libx264) “height not divisible by 2”