Transloadit:PDF到视频,可变长度

时间:2016-06-15 18:46:51

标签: pdf video heroku transloadit

/video/merge docs

我需要一个将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"的每张图片结果创建单独的视频。然后将它们连接起来,这在资源资本化方面似乎相当过分。

思想?

1 个答案:

答案 0 :(得分: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"
    }
  }
}