1

/视频/合并文档

我需要一个将 PDF 转换为视频的模板。不幸的是,/video/merge 机器人似乎需要帧率(幻灯片长度)以及视频持续时间。由于我不知道 PDF 将有多少页,我无法提供持续时间。

有没有解决的办法?

这是我当前模板的一部分:

"pdf_to_images": {
  "use": ":original",
  "robot": "/document/thumbs",
  "format": "png",
  "width": 1920,
  "height": 1080
},
"encode": {
  "use": {
    "steps": [
      {
        "name": "pdf_to_images",
        "as": "image"
      }
    ]
  },
  "robot": "/video/merge",
  "preset": "iphone",
  "width": 1920,
  "height": 1080,
  "ffmpeg": {
    "b": "8000K"
  },
  "framerate": "${fields.framerate}",
  "duration": "100"
},
//...store...

我需要从上传的字段中替换“帧率”,但我可以从动态计算“pdf_to_images”的结果数中替换“持续时间”吗?

否则,我将无法从“pdf_to_images”的每个图像结果中创建单独的视频,然后将它们连接起来,这在资源资本化方面似乎相当过分。

想法?

4

1 回答 1

0

您可能正在寻找的是${file.meta.page_count}– 正如预期的那样,它将从 /document/thumbs 返回 PDF 中的页数。例如,如果您想制作一个 PDF 的每一页持续一秒钟的视频,您可以使用如下模板:

{
  "steps": {
    ":original": {
      "robot": "/upload/handle"
    },
    "pdf_to_images": {
      "use": ":original",
      "robot": "/document/thumbs",
      "format": "png",
      "results": true,
      "width": 1920,
      "height": 1080,
      "imagemagick_stack": "v2.0.7"
    },
    "merged": {
      "robot": "/video/merge",
      "use": {
        "steps": [
          {
            "name": "pdf_to_images",
            "as": "image"
          }
        ]
      },
      "result": true,
      "framerate": "1",
      "duration": "${file.meta.page_count}",
      "ffmpeg_stack": "v4.3.1",
      "preset": "iphone",
      "resize_strategy": "fillcrop"
    }
  }
}
于 2021-02-26T12:12:43.790 回答