我需要将所有(大约 300GB)的 pdf 转换为 avi(或其他视频格式)。
我来解释一下我的意思;对于某个研究项目,我需要将每页 pdf 闪现(比如说 1 秒)。我知道这可以使用可用的程序来完成,首先从 pdf 中提取图像,然后使用视频编辑应用程序创建最终视频。
我想知道我是否可以自动化整个过程?有没有我不知道的现有方法?
我同时使用 GNU/Linux 和 Windows。
答案1
我还没有测试过这些,但我认为你可以用 ImageMagick(将 PDF 转换为 JPG)和 ffmpeg(将 JPG 转换为 MP4 或类似格式)来实现。毫无疑问,要实现这一点需要进行大量调整,但希望这能帮助你入门:
convert -density 400 n2010.pdf n2010.jpg
这应该会为每页生成一个 JPG 图像。您可能希望尝试各种选项,例如使用 PNG 而不是 JPG,以及调整密度选项以获得理想的质量/结果。
接下来我将使用 avconv/ffmpeg 将图像拼接成视频。下面的链接提供了一个(希望)可行的示例。
祝你好运!
参考
答案2
实际上,我最近也遇到过类似的问题——我想从 PDF 文件创建 MP4 视频。ImageMagick 在转换包含大量页面(约 1400 页)的 PDF 文件时有点问题。诀窍是每次调用只转换一个 PDF 页面convert
(当一次转换整个 PDF 时,ImageMagick 在某些时候会消耗太多内存——大约10 GB
),即
for p in {0..1441}; do
name=`printf "frame-%04d" ${p}`;
convert -density 600 -quality 100 art.pdf[${p}] ${name}.png;
done
然后ffmpeg
可以按如下方式使用。
ffmpeg -framerate 120 -i frame-%04d.png -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:color=white" output.mp4
该选项force_original_aspect_ratio=decrease
用于处理一些与其他图像尺寸略有不同的图像 - 如果是这样,它们将用白色填充(选项color=white
)。
由于图像中的细节非常少,我需要这样一个疯狂的DPI
( )——通常就足够了。-density 600
300
答案3
这是一个将 pdf 文件转换为 mp4 格式的视频的 bash 文件。
https://github.com/puraminy/pdf2mp4
用法
./pdftomp4 --input 1column_paper.pdf
如果您的论文有两栏,您还可以使用:
./pdftomp4 --input 2column_paper.pdf --cols 2
它有很多选项,你可以通过检查代码找到
先决条件
- 光纤光纤
- 图像魔术师