美文网首页
FFMPEG-实现PDF和视频互转

FFMPEG-实现PDF和视频互转

作者: 来自知乎的一只小胖子 | 来源:发表于2021-12-17 13:49 被阅读0次

    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感兴趣,欢迎转发和评论!

    相关文章

      网友评论

          本文标题:FFMPEG-实现PDF和视频互转

          本文链接:https://www.haomeiwen.com/subject/ochptrtx.html