Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理使用ffmpeg一次编码多个文件_Batch File_Video_Ffmpeg - Fatal编程技术网

Batch file 使用批处理使用ffmpeg一次编码多个文件

Batch file 使用批处理使用ffmpeg一次编码多个文件,batch-file,video,ffmpeg,Batch File,Video,Ffmpeg,这里完全是初学者,可能会在一些(希望)非常容易实现的事情上寻求帮助 我有一个放置文件夹,用来触发一个批处理过程,使用FFMPEG将其中包含的任何视频编码为5种不同的格式。它还创建了一个包含文件名的文本文件,然后在单独的php/api过程中使用该文件将视频上传到internet 当只将一个视频放入drop文件夹时,该过程可以完美地工作。然而,一旦有两个或更多,这个过程就不顺利了 下面是批处理文件运行的ffmpeg脚本之一的示例: for %%a in ("C:\live\dropfolder\tr

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

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

当只将一个视频放入drop文件夹时,该过程可以完美地工作。然而,一旦有两个或更多,这个过程就不顺利了

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

for %%a in ("C:\live\dropfolder\transcode\*.*") do ffmpeg\ffmpeg -i "%%a" (encoding settings) "C:\live\dropfolder\output\%%~na.mp4"
pause
for %%g in (C:\live\dropfolder\output\*.mp4) do echo %%~nxg > C:\live\dropfolder\filename\filename_format.txt
因此,当有2个或更多文件时,该回送生成的文件名可能是文件A的,而代码转换会话可能是文件B的

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

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

谢谢


汤姆

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

if exist C:\live\dropfolder\filename\filename_format.txt del C:\live\dropfolder\filename\filename_format.txt
for %%a in ("C:\live\dropfolder\transcode\*.*") do (
    ffmpeg\ffmpeg -i "%%a" (encoding settings) "C:\live\dropfolder\output\%%~na.mp4"
    echo %%~na.mp4 >> C:\live\dropfolder\filename\filename_format.txt
)