Batch file ffmpeg就地转换文件
我每天使用ffmpeg将多个视频文件转换为各种其他格式。正因为如此,我不能到处移动ffmpeg和多个批处理文件 我有一个文件夹Batch file ffmpeg就地转换文件,batch-file,ffmpeg,Batch File,Ffmpeg,我每天使用ffmpeg将多个视频文件转换为各种其他格式。正因为如此,我不能到处移动ffmpeg和多个批处理文件 我有一个文件夹C:\ffmpeg,其中包含ffmpeg.exe和所有不同格式的批处理文件转换器。然后,我在桌面上有一个指向批处理文件的快捷方式,可以将视频文件拖放到该文件上进行转换 目前,我使用它来就地转换视频文件 FOR %%A IN (%*) DO ( "%~dp0\ffmpeg.exe" -i %%A -c:v libx264 -crf 22 -c:a aac %%A_Conve
C:\ffmpeg
,其中包含ffmpeg.exe
和所有不同格式的批处理文件转换器。然后,我在桌面上有一个指向批处理文件的快捷方式,可以将视频文件拖放到该文件上进行转换
目前,我使用它来就地转换视频文件
FOR %%A IN (%*) DO (
"%~dp0\ffmpeg.exe" -i %%A -c:v libx264 -crf 22 -c:a aac %%A_Converted.mp4
)
从文件夹C:\Users\User\Documents\folder
拖放视频文件example.avi
,会导致文件example.avi\u Converted.mp4
在相同位置创建(完美!)
我想从新文件名中删除原始文件类型,.avi
,因此输出文件是example\u Converted.mp4
。我可以使用如下代码示例中所示的~n
来实现这一点,尽管新文件随后会在C:\ffmpeg
中创建,而不是在C:\Users\User\Documents\Folder
中创建
FOR %%A IN (%*) DO (
"%~dp0\ffmpeg.exe" -i %%A -c:v libx264 -crf 22 -c:a aac "%%~nA_Converted.mp4"
)
有没有办法使输出文件与输入文件在同一位置创建?尝试使用
“%%~dpnA\u Converted.mp4”
@MCND这很完美,谢谢!我尝试了%~dp0\%~nA_Converted.mp4
,它是正确的,但不起作用……你应该使用-I%%A
而不是-I%%A”
。dpn
是修饰符或变量%~dp0
是批处理文件的驱动器和路径(变量为%0
),而%~dpnA
是正在迭代的文件的驱动器、路径和文件名(%%A
)。从技术上讲,您应该将“%~dp0\ffmpeg.exe”
更改为“%~dp0ffmpeg.exe”
因为%~dp0
后面已经有一个反斜杠。