引言

说一个不太常用的需求,就是你有没有想过,把电脑上珍藏多年的PDF电子书,转换成视频文件,让大家学习。

为什么要视频,电子书不香吗?不香!因为这是短视频最好的时代,你不做成短视频,没有人愿意冷静而枯燥地阅读

今天分享的知识,就是如何快速地从pdf文档,制作为mp4短视频。搬好小板凳,准备开讲了哈!

学习时间

有一种快速方便的方法可以将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……一系列图像文件。

如果页数较多,那么使用多个数字的枚举文件名会很方便,这样便于排序。

你也可以用格式化的数字命名输出文件,如使用 %03d,得到的图片文件名数字部分都会是3位,不足的前置补零。

convert -density 150 -antialias "input_file_name.pdf" -resize 1024x -quality 100 "output_file_name-%03d.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-%3d.png 那一系列图片,将其按照顺序合并入短视频,执行下面这行指令:

ffmpeg -r 1/5 -i output_file_name-%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4

说一说参数的含义:

  • -r 1/5 表明对每张图片展示5秒钟;
  • -i output_file_name-%03d.png 指定一系列用作输入的图片;
  • -c:v libx264 表明输出视频使用 h264 编码格式;
  • -r 30 表明输出视频帧率 30 fps;
  • -pix_fmt yuv420p 使用 YUV pexel 格式;

是不是每一项的设置都那么有理有据?:-)

写在最后

对于特殊的要求,我们将需求拆解为细分的小步骤。通过每个小步骤的处理,将整个流程串联起来就完成了整个工作,这就是软件开发的流程。

实现的方式有很多。但是能够在特定的场合选中选择恰当的工具,这很重要。也对我们如何高效的工作提出了更高的要求。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

图片和input不对齐_pdf到png再到mp4短视频:不需要工具,2个指令1键搞定相关推荐

  1. 怎样调整input框背景颜色_不用花钱,自己也能制作证件照,更换背景色、排版全搞定...

    证件照是工作所必须的,但是要求总是变来变去,有的需要白色背景,有的需要蓝色背景,还有需要红色背景的.手机有很多制作证件照的软件,但是大部分都是收费的,我们能不能自己制作一张既美观.又能随机应变,关键是 ...

  2. 使用ffmpeg用图片批量合成抖音卡点短视频

    技术交流 使用ffmpeg用图片批量合成抖音卡点短视频 ffmpeg工具准备 图片和音乐文件准备 ffmpeg命令行合成图片 短视频合成的效果 使用ffmpeg用图片批量合成抖音卡点短视频 近期在研究 ...

  3. css实现input文本框与图片行内水平居中对齐

    css实现input文本框与图片行内水平居中对齐 如图输入框与图片不对齐 css样式添加 input,img {vertical-align:middle;}

  4. 2021-4-27 工作记录--input和textarea出现边框部分失踪+让多个文本输入框左侧对齐+电话号码的正则表达式+图片和文字没有对齐+jQuery滚动视觉差插件+清除浮动

    一.input和textarea在不同屏幕尺寸下出现边框部分失踪的问题 1.解决方法 给input和textarea设置border 2.使用例子 代码: 结果: 二.让多个文本输入框左侧对齐 代码: ...

  5. HTML 标签包含规范,规避脱标流,图片和文字垂直居中对齐,

    1 标签包含规范 ◆div可以包含所有的标签. ◆p标签不能包含div h1等标签. ◆h1可以包含p,div等标签. ◆行内元素尽量包含行内元素,行内元素不要包含块元素. 2 规避脱标流 ◆尽量使用 ...

  6. html图片后边自动底部对齐,css实现图片与文字底边对齐

    css实现图片与文字底边对齐 通常图片与文字放在一起的时候图片往往会偏上,通过设置margin-bottom可以达到文字图片底边对齐的目的 我们在做网页的时候, 会遇到一个图片和文字位置对不齐的问题. ...

  7. html5图片与文字垂直对齐

    html5图片与文字垂直对齐 如图:效果如下 原理:在图片旁边放上文字使其垂直对齐,有几种办法 1.定位:使用绝对定位相对定位可以很容易办到 2.b标签是行内元素,使其变为块元素再用margin的办法 ...

  8. 如何使图片和文字垂直对齐(vertical-align:middle;)

    vertical-align是适用于行内或行内块元素的.设置垂直对齐的方式. 1.图片和文字居中对齐 <img src="img/zxj.jpg" alt="&qu ...

  9. 微信小程序图片文字水平垂直居中对齐

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站 微信小程序图片文字水平垂直居中对齐 要实现水平垂直居中 可使用如下方案 给父元素设置 .td {dis ...

最新文章

  1. 透彻理解块级元素的宽度
  2. javac编译出现“找不到符号”和软件包不存在的解决
  3. 七层神经网络 PK logstic 回归
  4. 概念理解#1 第一类公民(First-class Citizen)
  5. Windows Phone开发手记-WinRT下分组拼音的实现
  6. HttpURLConnection 中Cookie 使用
  7. Redis缓存穿透、缓存击穿和缓存雪崩
  8. Exchange 默认数据库删除问题
  9. 计算机活动天窗,玩出花样,天窗的正确打开方式
  10. 爬虫10-股票信息定向爬取
  11. php连接mysql数据库输出_PHP连接并输出数据库数据实例代码
  12. 双电容单相电机接线图解_拿走不谢!75例自动控制原理图、接线图
  13. Exchange 2003 RPC over Http
  14. dubbo 2.8.4(dubbox)的jar包制作【添加到maven本地仓库】
  15. 软件开发需求整理概要
  16. java socket编程—单客户端与服务器通信
  17. QDialog的accept()函数和reject()函数
  18. avformat_seek_file函数介绍
  19. iOS Swift 照片裁剪
  20. invalid byte 1 of 1-byte UTF-8 sequence

热门文章

  1. java 二进制图片上传_Spring MVC上传图片,Java二进制图片写入数据库,生成略缩图...
  2. C语言题目集-分西瓜
  3. Java黑皮书课后题第2章:2.11(人口统计)重写编程练习题1.11,提示用户输入年数,然后显示这个年数之后的人口值,将1.11中的提示用于这个程序
  4. Java黑皮书课后题第1章:*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天
  5. C语言学习之输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
  6. 手动创建数据库实例全攻略7:UNDO
  7. 练习五:整数顺序排列
  8. 【CSS3】-webkit-margin-before与margin-top
  9. 认识zookeeper
  10. [BZOJ1007](HNOI2008)水平可见直线(半平面交习题)