使用ffmpeg,使用批处理对多个文件进行一次一个的编码



这里完全是初学者,可能会在一些(希望)非常容易实现的事情上寻求帮助。

我设置了一个放置文件夹来触发一个批处理过程,该过程将使用FFMPEG将其中包含的任何视频编码为5种不同的格式。它还创建了一个包含文件名的文本文件,然后我在一个单独的php/api过程中使用该文件名将视频上传到互联网。

当只将一个视频放入放置文件夹时,该过程可以完美工作。然而,一旦有两个或两个以上,这个过程就会失败。

以下是批处理文件运行的一个ffmpeg脚本的示例:

for %%a in ("C:livedropfoldertranscode*.*") do ffmpegffmpeg -i "%%a" (encoding settings) "C:livedropfolderoutput%%~na.mp4"
pause
for %%g in (C:livedropfolderoutput*.mp4) do echo %%~nxg > C:livedropfolderfilenamefilename_format.txt

因此,当有2个或多个文件时,回声生成的文件名可能是文件A,而转码会话可能是文件B。

理想情况下,我希望整个过程完成第一个视频的转码,包括为每种格式生成文本文件,然后再返回到drop文件夹中下一个视频的开始过程。

我该如何做到这一点?如有任何建议,我们将不胜感激。

谢谢!

Tom

试试这个,不确定它是否真的是你想要的。。。

if exist C:livedropfolderfilenamefilename_format.txt del C:livedropfolderfilenamefilename_format.txt
for %%a in ("C:livedropfoldertranscode*.*") do (
    ffmpegffmpeg -i "%%a" (encoding settings) "C:livedropfolderoutput%%~na.mp4"
    echo %%~na.mp4 >> C:livedropfolderfilenamefilename_format.txt
)

最新更新