晓怒(xiao.nu),记录分享我的学习笔记,学习一下,记录一下,分享一下。

图片、ppt、pdf生成mp4文件,支持字幕及解说

可能你有一些小东西希望给朋友们分享,但是自己又有点儿羞涩😚️,不好意思出镜,也许声音不太好听,也许一说话就结巴,这个时候我们就退却了吗?NONONO,你可以试试我们的小工具,将pdf转成mp4格式的视频,然后分享到bilibili这样的网站上面。

先说说小工具的主要功能吧~

原本是想尝试选择ppt作为数据源,来生成视频文件的,但是ppt里面可能会使用只有你电脑才有的字体,甚至在导出图片素材的时候,会发生变形和漂移,最终选择了pdf文件来作为素材源。

  • 拆分pdf文件,导出每一页pdf为图片
  • 拆分画外音文件(与pdf同名的txt文件,具体格式后面再细说)
  • 生成字幕图片和对应的mp3音频(使用在线tts api生成解说音频)
  • 计算每段音频文件的时长,将字幕图片合成,转成mp4视频文件(此时并没有解说画外音)
  • 将所有解说音频合并
  • 视频文件和音频文件合并,生成有声的mp4文件,并清除临时文件

其实本质上就是一个将图片和文字转成视频的过程,只是使用pdf作为图片的载体。
使用到的工具是ffmpeg、pdf导成图片的PDFtoX.dll 以及百度AI开放平台

涉及到的主要核心代码:

ffmpeg 将图片转成视频:

file 'img1.png'    //这里是图片,可能是导出的原图,也可能是添加了字幕文件的字幕图片
duration 12.30     //这段字幕对应音频解说的时长,单位是秒,可以使用小数

重复上面的部分,组成生成素材源文件mp4_no_voice.txt,具体生成的命令就是:

ffmpeg -f concat -safe 0 -i mp4_no_voice.txt -r 1 -c:v libx264 -x264-params keyint=125:scenecut=0 -pix_fmt yuvj420p -vf "scale=宽:高" -t 所有音频总长度(单位秒) no_voice_video.mp4 -y

mp3解说音频合并代码:

file 'srt1.mp3'    //第一段音频
file 'srt2.mp3'    //第二段音频

保存为:mp3.txt文件,然后使用下面的命令合并音频:

ffmpeg -f concat -safe 0 -i mp3.txt -ab 16k -f mp3 copy audio.mp3 -y

最后将音频和无声视频合并,生成有解说,有字幕的视频文件。

使用方式:

pdf2mp4.exe pdf文件名 [字幕字体] [字幕字号] [字幕颜色] [透明度(最大255)] [百度AI音色]

pdf文件名必须输入项,其他可以不同,默认分别为:宋体、32、000000、254、4117

另附百度AI音色表:

博文-情感男声度    4106
小贤-情感男声度    4115
小鹿-甜美女声度    4119
灵儿-清澈女声度    4105
小乔-情感女声度    4117
小雯-成熟女声度    4100
米朵-可爱女童    4103

字幕格式说明:

[delay=3000] //延时3000毫秒 = 3秒
[delay=page] //翻页,pdf翻页
字幕文字,一行一条,自动将这行字打在上面的页面上,生成字幕

最后放一个演示的视频

1 评论
    loveyouChrome 112Windows 10
    2023年04月30日回复

    可以分享一下下载吗