FFMPEG-实现PDF和视频互转
一只小胖子
[互联网运营 | 直播电商 | 广告行业] 从业者
2 人赞同了该文章
一.基础使用说明:
ffmpeg 来实现: 视频与图片间的相互转换,以及对视频文件的裁剪合并等.
1.视频转图片
ffmpeg -i out.flv -r 1 -f image2 image-%3d.jpeg ## -r 1 转换图片的帧率(1s一张)## -f image2 多媒体文件格式ffmpeg -i 1.mp4 -r 1 -f image2 image-%3d.jpeg## -r 1 :帧率,每秒钟转出一张图片## -f : 将输入文件 转成 image2
2.图片转视频
ffmpeg -i image-%3d.jpeg -r 10 out.mp4## 提取9张图片ffmpeg -i 2.ts -r 1 -ss 00:00:00 -t 9 %3d.jpeg ffmpeg -i 1.ts -r 1 -f image2 image-%3d.jpeg ## -r 10 1张图片10帧## 指定转换参数ffmpeg -f image2 -i image-%3d.jpeg -vcodec libx264 image.mp4 ffmpeg -r 1/5 -i image%1d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
3.裁剪及合并
## 裁剪 ffmpeg -i 1.mp4 -ss 00:00:02 -t 3 out.ts ## ss : 视频的其实时间 ## -t : 时长 ## 合并 ffmpeg -f concat -i input.txt put.mp4 ## -f concat : 告诉 ffmpeg 将后面的文件合并到一起 ## input.txt : 要合并的列表 file '1.ts' file '2.ts'
二.pdf生成mp4示例:
1.网页生成PDF
可以使用Python脚本生成多网页对应的多PDF文件,具体的使用可参考如下链接:
Python爬虫新手入门教学(八):爬取论坛文章保存成PDFwww.jianshu.com/p/cf13b704a44f
2.PDF生成图片
方案1:
这里使用mutool生成图片,你也可选用PDF阅读器来生成多个图片(具体看你PDF阅读器的支持)
## 如下命令指定了PDF文件输出格式,输出为带页码的图片,要进行PDF转换页码为1,3,4,5-12页 ## 示例一: mutool convert -F png -o myfile-%d.png ./轻松Scrum之旅.pdf(全文路径) 1,3,4,5-12 ## 示例二: mutool draw -F png -o myfile-%d.png ./轻松Scrum之旅.pdf(全文路径) 1,3,4,5-12
Mutool工具的相关配置及使用,请参考如下:
一只小胖子:实践-SuperMemo-PDF文档图片增量(一)4 赞同 · 3 评论文章
方案2:
使用 imagemagick 包中的convert命令,在如下命令行中我们指定了dpi参数,其它参数和具体的下载/使用请参考:
https://imagemagick.org/imagemagick.org/
PDF to PNG’s
convert -density 400 input.pdf pic.png
This will create one picture for every PDF page with the following naming convention pic-<NUM>.
3.图片生成视频
(1).PNG’s to MP4
ffmpeg -r 1/5 -i pic-%02d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
(2).Scale the Movie
As the final movie was >4k, my TV wasn’t able to play it, so I in the last step I had to scale it down to an appropriate resolution of 720p:
ffmpeg -i out.mp4 -vf scale=-1:720 out_720p.mp4
Voila, the final movie plays every page for 5 seconds with a frame rate of 30 frames per second and a horizontal resolution of 720 pixels. 相关参考如链接如下:
https://www.everythingcli.org/convert-pdf-to-mp4/www.everythingcli.org/convert-pdf-to-mp4/
三.mp4生成pdf示例:
使用moviepy插件读取视频,并按固定帧数提取图片,对图片直接使用pdf的处理包进行合并即可.
moviepy-cn 文档doc.moviepy.com.cn/
1.取视频至图片
from moviepy.editor import VideoFileClip# 读取视频文件clip = VideoFileClip("demo.mp4")# 以每秒20帧的方式获取图片帧for i, img in enumerate(clip.iter_frames(fps=20)): # todo 对图片进行识别
2.合图片至PDF
你可以直接使用支持该操作的PDF阅读器,或使用python下的pdf 处理库mupdf, 使用 mupdf 来读取所有图片至流并写入pdf文件即可,具体可参考mupdf的文档,这里不再详细说明. 参考链接:
MuPDF Documentationwww.mupdf.com/docs/index.html
使用在线服务
提示: 下面这里放置一个可用的工具(直接可以实现视频至PDF的转换,不用写代码!)
https://nsspot.herokuapp.com/videotopdf/nsspot.herokuapp.com/videotopdf/
四.其它学习参考: 利用Python做一个漂亮小姐姐词云跳舞视频
https://blog.csdn.net/fyfugoyfa/article/details/112209719blog.csdn.net/fyfugoyfa/article/details/112209719
我是一只热爱学习的小胖子,如果你也热爱学习,并且对SuperMemo感兴趣,欢迎转发和评论!
网友评论