Transloadit: PDF в видео, переменной длины
/ видео / объединить документы
Мне нужен шаблон, который конвертирует 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 ответ
Вы могли бы искать
${file.meta.page_count}
- который, как и ожидалось, вернет количество страниц в PDF из / document / thumbs. Например, если вы хотите сделать видео, в котором каждая страница 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"
}
}
}