自动化FFmpeg /多核支持

时间:2018-07-11 09:06:41

标签: batch-file ffmpeg

我需要FFmpeg /批次的帮助。我有几个大批图像(每批图像+14000个文件,每个图像+5 MB,所有文件均为.TIFF),我正在使用FFmpeg将它们串在一起成为.mp4视频。

元数据中的日期由于在创建时的存储方式而中断,因此时间和日期(T / D)在file_name上。我需要将每个帧的各自的T / D(因此其File_Name)刻录到它们上,以进行精确的测量(科学目的)。

在google和reddit的帮助下,我设法像这样半自动化:

Master.bat:

forfiles /p "D:\InputPath" /m "*.TIFF" /S /C "cmd /c C:\SlavePath\slave.bat @file @fname"

Slave.bat:

ffmpeg -i "%~1" -vf "drawtext=text=%~2: fontcolor=white: fontsize=30: fontfile='C\:\\FontPath\\OpenSans-Regular.ttf'" "D:\OutputPath\mod_%~1"

运行Master.bat将输出每个单独的图像,其上带有文本的文字,并将File_Name更改为mod_'File_name'.TIFF

真实示例:2018-06-05--16-00-01.0034.TIFF变成mod_2018-06-05--16-00-01.0034.TIFF

问题在于当我的文件中包含“-”(“ date--time.miliseconds.TIFF”)时,FFmpeg不喜欢它,并且也不喜欢毫秒,因此我必须使用批量重命名实用程序(BRU)“手动”更改所有文件的名称。因此,使用BRU,我将所有文件重命名为00001.TIFF, 00002.TIFF,等,而FFmpeg再次喜欢我。效果很好,但这意味着我不能AFK。

在那之后,我必须回到cmd并手动启动图像到视频的转换。

此外,FFmpeg似乎并没有使用所有内核。


我需要帮助来找到一种方法:

  1. 按照处理顺序自动将master.bat的输出更改为00001.TIFF等(即,首先要处理的是1.TIFF,第二个是2.TIFF)
  2. 将ffmpeg的img-to-vid功能添加到自动化系统中
  3. 让我的CPU尽可能有效地使用所有内核。在Google上发现的2014/15帖子使FFmpeg似乎不支持多核或超线程。

64位Windows,i7 7700hq,gtx 1050 4Gb,C:SSD,D:HDD

1 个答案:

答案 0 :(得分:0)

尝试一下:

  

ffmpeg -i“ 2018-06-05--16-00-01。%4d.TIFF” -threads 4 out.mp4

https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/image_sequence