pdf到png再到mp4短视频:不需要工具,2个指令1键搞定

引言

说一个不太常用的需求,就是你有没有想过,把电脑上珍藏多年的PDF电子书,转换成视频文件,让大家学习 。
为什么要视频,电子书不香吗?不香!因为这是短视频最好的时代,你不做成短视频,没有人愿意冷静而枯燥地阅读
今天分享的知识,就是如何快速地从pdf文档,制作为mp4短视频 。搬好小板凳,准备开讲了哈!
pdf到png再到mp4短视频:不需要工具,2个指令1键搞定

学习时间

【pdf到png再到mp4短视频:不需要工具,2个指令1键搞定】有一种快速方便的方法可以将PDF转换为一个或多个图像 。命令行工具ImageMagick可以做到这一点 。
你可以将整个PDF文档转换为单个图像,或者也可以选择将页面输出为一系列枚举图像文件
使用的时候 , 墙裂建议指定密度 -density 、抗锯齿 -antialias 和质量 -quality 选项,提高目标文件的转换质量
在下面的示例中,我们使用 -density 150、-quality 100和 -antialias 选项 。ImageMagick 非常智能,它会根据输出文件扩展名自动匹配输出格式 。
1 - 转换整个 PDF 文件为单张 PNG 图片
convert -density 150 -antialias "input_file_name.pdf" -append -resize 1024x -quality 100 "output_file_name.png"
这里的关键参数是 -append,PDF转换为单个图像或一系列图像时,效果会有所不同 。


2 - 转换整个 PDF 文件为一系列图片
convert -density 150 -antialias "input_file_name.pdf" -resize 1024x -quality 100 "output_file_name.png"
此命令的结果是名为 out_file_name-0.png、out_file_name-1.png、out_file_name-0.png-2.png……一系列图像文件 。
如果页数较多,那么使用多个数字的枚举文件名会很方便,这样便于排序 。
你也可以用格式化的数字命名输出文件,如使用 d,得到的图片文件名数字部分都会是3位,不足的前置补零 。
convert -density 150 -antialias "input_file_name.pdf" -resize 1024x -quality 100 "output_file_name-d.png"


3 - 仅转换指定页面
如果只是需要将某页转换输出为图片,这样写:
convert "input_file_name.pdf[1]" "output_file_name.png"
举一反三 , 如果是一些页码范围,就这么些:
convert "input_file_name.pdf[i-j]" "output_file_name.png"
这些选项很人性化,有没有?

图片到视频

有了图片,组装成视频就不是问题了 。我们之前推出过一系列的文章 , 介绍了音视频处理领域的不二之选——ffmpeg 。
单张图片生成一段视频,也是可以的,只是没有什么动效,体验很不好 。我们加入生成的是多张序列化图片,比如上一节中所说的 output_file_name-=.png 那一系列图片 , 将其按照顺序合并入短视频 , 执行下面这行指令:
ffmpeg -r 1/5 -i output_file_name-d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
说一说参数的含义:
  • -r 1/5 表明对每张图片展示5秒钟;
  • -i output_file_name-d.png 指定一系列用作输入的图片;
  • -c:v libx264 表明输出视频使用 h264 编码格式;
  • -r 30 表明输出视频帧率 30 fps;
  • -pix_fmt yuv420p 使用 YUV pexel 格式;
是不是每一项的设置都那么有理有据?:-)

写在最后

对于特殊的要求,我们将需求拆解为细分的小步骤 。通过每个小步骤的处理,将整个流程串联起来就完成了整个工作,这就是软件开发的流程 。
实现的方式有很多 。但是能够在特定的场合选中选择恰当的工具,这很重要 。也对我们如何高效的工作提出了更高的要求 。
Happy coding :_)
我是 @程序员小助手 , 持续分享编程知识 , 欢迎关注 。

相关经验推荐