淘宝主图视频制作教程(手把手教你使用Python轻松打造淘宝主图视频生成神器)

来源:Python爬虫和数据挖掘

作者:Python进阶者

大家好,我是Python进阶者。

前言

做过网店的朋友或多或少都会使用主视频,因为这样可以增加网店产品的曝光率,从而提高店铺产品的成交率。今天,边肖将带你制作这样一件神器。据说网上类似的软件都是收费软件,我们做了以后可以免费使用。

一、项目准备

编辑:崇高文本3

音频和视频节目:ffmpeg

淘宝主图视频制作

模块:tkinter,os,PIL,时间

二、项目目标

将多张图片组合成一个带有背景音乐的视频。

三、实验步骤

准备图片

大家只要在网上搜一下就可以了。我不需要再说什么了。

2.导入模块

从tkinter导入文件对话框 导入tkinter作为t 从pil导入图像 从tkinter导入消息框 导入os3。制作软件界面

使用Python自带的tkinter模块。我们添加所有必要的组件。

Self.tl=[] #存储图片列表 self . aa = & # 39;'#存储音频的地址 self . fg = OS . path . join(OS . path . expand user(& # 34;~"), '桌面& # 39;)#桌面地址 self . root = t . tk() self . root . title(& # 39;淘宝主图视频生成器v1.0 & # 39)#主界面标题 self . root . icon bitmap(& # 39;1.ico & # 39)#添加主界面标题图片 self . root . geometry(& # 39;700x600 & # 39)# Main接口大小 self . root . attributes(& # 39;-阿尔法& # 39;,0.9) #主界面透明度 self . root . WM _ attributes(& # 39;-topmost & # 39;1) #主界面顶部 self。TT = T. Text(自我。root,width = 75,height = 30) #文本框 #主界面中的所有按钮和部分选项卡部分 self。打开图片文件& # 39;,font =(& # 34;\ ë ë ",13,'bold & # 39),command = self . open _ file) self . B3 = t . Button(self . root,text = & # 39打开音频文件& # 39;,font =(& # 34;\ ë ë ",13,'bold & # 39),command = self . adio) self . B7 = t . Button(self . root,text = & # 39打开文件,批量修改& # 39;,font =(& # 34;\ ë ë ",13,'bold & # 39),command = self . XG) self . b8 = t . Button(self . root,text = & # 39查看照片& # 39;,font =(& # 34;\ ë ë ",13,'bold & # 39),command = self . CK) self . L1 = t . Label(self . root,text = & # 39视频文件名:& # 39;) self . e = t . Entry(self . root) self . B2 = t . Button(self . root,text = & # 39生成主画面视频& # 39;,font =(& # 34;\ ë ë ",13,'bold & # 39),command = self . video) self . B4 = t . Button(self . root,text = & # 39播放音频文件& # 39;,font =(& # 34;\ ë ë ",13,'bold & # 39),command = self . play) self . b5 = t . Button(self . root,text = & # 39清除空文本框的内容& # 39;,font =(& # 34;\ ë ë ",13,'bold & # 39),command = self . close) self . B6 = t . Button(self . root,text = & # 39预览视频内容& # 39;,font =(& # 34;\ ë ë ",13,'bold & # 39),command = self . player) self . L2 = t . Label(self . root,text = & # 39视频分辨率:& # 39;) self.l3=t.Label(self.root,text = & # 39长度:& # 39;) self.e1=t.Entry(self.root,width = 5) self . l4 = t . Label(self . root,text = & # 39宽度:& # 39;) self.e2=t.Entry(self.root,width = 5) self . TT . place(x = 10,y=50) self.b1.place(x=100,y=10) self.l1.place(x=120,y=460) self.e.place(x=200,y=460) self.b2.place(x=200



看起来功能丰富吗?让我们逐一实现它的功能。

4.软件功能的实现过程

1)打开图片文件,打开音频文件。

两个实现步骤差不多,只是改变了打卡文件的类型,我们需要使用tkinter中filedialog模块打开多个文件和打开单个文件的功能。目前图片只支持png和jpg两种后缀。

#选择主视频的图片 AA = file dialog . askopenfilenames(title = & # 39;选择所有主图形文件& # 39;,文件类型=[(& # 39;巴新& # 39;,'巴新& # 39;),('jpg & # 39,'JPG & # 39;),('所有文件& # 39;, '*')]] #提取其后缀用于下一步 aa=self.tl aa[0] #文件名及其路径 #选择音频文件 文件对话框。打开音频文件& # 39;,文件类型=[(& # 39;WAV & # 39,'wav & # 39),('MP3 & # 39,'mp3 & # 39),('所有文件& # 39;, '*')])2)将视频生成期间的日志输出打印到文本框。

ffmpeg生成视频的时候,会有一系列的日志,但是这个日志是popen无法捕获的,所以我们要通过dos capture把它重定向到一个文件,然后我们在把文件的内容读入文本框,所以我们需要这样做:

如果os.path .存在(& # 39;1.txt & # 39):#先判断有没有这个文件 试试: f = open(OS . path . join(self . fg,& # 39;1.txt & # 39),'r & # 39,编码= & # 39;utf-8 & # 39;)#打开文件 除: messagebox . showinfo(title = & # 39;提示& # 39;,message = & # 39-未能成功生成主视频文件-& # 39;)#提示 最后: self . TT . insert(& # 39;插入& # 39;,f . read()+& # 39;n & # 39) self . TT . insert(& # 39;插入& # 39;,'n & # 39) messagebox . showinfo(title = & # 39;提示& # 39;,message = & # 39-成功生成主视频文件- n文件名:% s.mp4 & # 39% self.e.get () f.close () #关闭文件流 else: AF = open(OS . path . join(self . fg,& # 39;1.txt & # 39),'w & # 39)# Create af.close不带此文件()#关闭文件流3)用ffmpeg生成视频

这一步就看你对ffmpeg视频生成的操作步骤掌握的如何了。具体步骤如下:

OS . popen(& # 39;ffmpeg-r 0.3-t 300-I { }/% d . png-I { }-strict-2-f MP4-s { } x { } { } & gt;{ } 2 & gt&1'。format(ab,self.aa,str(self.e1.get()),str(self.e2.get()),os.path.join(self.fg,self . e . get()+& # 39;. mp4 & # 39),os.path.join(self.fg,& # 39;1.txt & # 39)))看到这么长的参数,你肯定很困惑。我一个一个解释。

Ffmpeg是众所周知的。节目名 -r:video frame -t video end event -I后面通常是图片或音频视频名 -strict 2代表标准 -FMMP4视频输出格式 -为aac音频编码设置。&1表示结果输出到标准流,然后输出到文本文件。

5.预览视频

视频生成后,我们可以看到他的视频播放效果。这里我们还是用os的popen方法,可以轻松调用系统视频播放器播放:

OS . popen(self . e . get()+& # 39;. mp4 & # 39)这样就达到了预览视频的效果。

四、项目总结

通过ffmpeg的应用,我们可以做出很多有趣的东西。本文旨在教你思路,让你对ffmpeg有更深入的了解,并利用它做出更有价值的软件。



您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友