利用python+ffmpeg合并B站视频及格式转换 B站客户端下载的视频一般有两种格式:早期的多为blv格式(由flv格式转换而来,音视频轨道在同一文件下)。
如今的多为m4s格式,音频轨视频轨分开 以下为利用ffmpeg简单对文件处理,使其转换为大多数播放器能正常播放的mp4格式 前提:已正常安装ffmpeg
import tkinter as tk from tkinter import filedialog import os import tkinter.messagebox from tkinter import ttk mainGUI=tk.Tk() width = 400 height = 400 screenwidth = mainGUI.winfo_screenwidth() screenheight = mainGUI.winfo_screenheight() alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2) mainGUI.geometry(alignstr) mainGUI.title("转码系统") def browseDialog(): root = tk.Tk() root.withdraw() return filedialog.askopenfilename() def browseDialogTo(): path=browseDialog() var.set(path) def browseDialogTo2(): path=browseDialog() var2.set(path) def browseDialogTof2(): path=browseDialog() varf2.set(path) def browseDialogTof3(): path=browseDialog() varf3.set(path) def browseDialogTof4(): path=browseDialog() varf4.set(path) tab = ttk.Notebook(mainGUI) frame0 = tk.Frame(tab) tab6 = tab.add(frame0, text = "m4s转mp4") frame1 = tk.Frame(tab) tab1 = tab.add(frame1, text = "blv,flv转mp4") frame2 = tk.Frame(tab) tab2 = tab.add(frame2, text = "提取音频") frame3 = tk.Frame(tab) tab3 = tab.add(frame3, text = "音频截取") tab.pack(expand = True, fill = tk.BOTH) #----------------------------------------------------------------------------------------------# l1=tk.Label(frame0,text = "请选择视频文件",font=('Arial', 15),width=100,height=2) l1.pack() var=tk.StringVar() var.set("") e1 = tk.Entry(frame0,textvariable = var, show = None)#显示成明文形式 e1.pack() b1=tk.Button(frame0, text='浏览', width=6, height=2, command=browseDialogTo) b1.pack() l2=tk.Label(frame0,text = "请选择音频文件",font=('Arial', 15),width=100,height=2) l2.pack() var2=tk.StringVar() var2.set("") e2 = tk.Entry(frame0,textvariable = var2, show = None)#显示成明文形式 e2.pack() b2=tk.Button(frame0, text='浏览', width=6, height=2, command=browseDialogTo2) b2.pack() l3=tk.Label(frame0,text = "请输入新文件命名",font=('Arial', 15),width=100,height=2) l3.pack() e3 = tk.Entry(frame0, show = None)#显示成明文形式 e3.pack() def myCMD(path1,path2,name): ver=os.popen("FFmpeg -i "+path1+" -i "+path2+" -codec copy "+"C:\\Users\\renboyu010214\\Desktop\\outputFile\\"+name+".mp4") ver.close() def myCMDmain(): path1=e1.get() path2=e2.get() name=e3.get() myCMD(path1,path2,name) tkinter.messagebox.showinfo(title='success', message="转码成功!") b4=tk.Button(frame0, text='确定', width=6, height=2, command=myCMDmain) b4.pack() #----------------------------------------------------------------------------------------------# lf2=tk.Label(frame1,text = "请选择blv或flv文件",font=('Arial', 15),width=100,height=2) lf2.pack() varf2=tk.StringVar() varf2.set("") ef2 = tk.Entry(frame1,textvariable = varf2, show = None)#显示成明文形式 ef2.pack() bf2=tk.Button(frame1, text='浏览', width=6, height=2, command=browseDialogTof2) bf2.pack() lf2_1=tk.Label(frame1,text = "请输入新文件命名",font=('Arial', 15),width=100,height=2) lf2_1.pack() ef2_1 = tk.Entry(frame1, show = None)#显示成明文形式 ef2_1.pack() def myCMDmainf2(): path1=ef2.get() name=ef2_1.get() ver=os.popen("ffmpeg -i "+path1+" "+"C:\\Users\\renboyu010214\\Desktop\\outputFile\\"+name+".mp4") ver.close() tkinter.messagebox.showinfo(title='success', message="转码成功!") bf2=tk.Button(frame1, text='确定', width=6, height=2, command=myCMDmainf2) bf2.pack() #----------------------------------------------------------------------------------------------# lf3=tk.Label(frame2,text = "请选择视频文件",font=('Arial', 15),width=100,height=2) lf3.pack() varf3=tk.StringVar() varf3.set("") ef3 = tk.Entry(frame2,textvariable = varf3, show = None)#显示成明文形式 ef3.pack() bf3=tk.Button(frame2, text='浏览', width=6, height=2, command=browseDialogTof3)###### bf3.pack() lf3_1=tk.Label(frame2,text = "请输入新文件命名",font=('Arial', 15),width=100,height=2) lf3_1.pack() ef3_1 = tk.Entry(frame2, show = None)#显示成明文形式 ef3_1.pack() def myCMDmainf3(): path1=ef3.get() name=ef3_1.get() ver=os.popen("ffmpeg -i "+path1+" -acodec copy -vn "+"C:\\Users\\renboyu010214\\Desktop\\outputFile\\"+name+".aac") #ffmpeg -i F:\video\冠世一战.mp4 -acodec copy -vn F:\video\output.aac ver.close() tkinter.messagebox.showinfo(title='success', message="音频提取成功!") bf3=tk.Button(frame2, text='确定', width=6, height=2, command=myCMDmainf3) bf3.pack() #----------------------------------------------------------------------------------------------# #----------------------------------------------------------------------------------------------# lf4=tk.Label(frame3,text = "请选择音频/视频文件",font=('Arial', 15),width=100,height=2) lf4.pack() varf4=tk.StringVar() varf4.set("") ef4 = tk.Entry(frame3,textvariable = varf4, show = None)#显示成明文形式 ef4.pack() bf4=tk.Button(frame3, text='浏览', width=6, height=2, command=browseDialogTof4)###### bf4.pack() lf4_1=tk.Label(frame3,text = "请输入新文件命名(音频后缀.mp3 视频后缀.mp4)",font=('Arial', 15),width=100,height=2) lf4_1.pack() ef4_1 = tk.Entry(frame3, show = None)#显示成明文形式 ef4_1.pack() lf4_2=tk.Label(frame3,text = "请输入开始时间(xx:xx:xx)",font=('Arial', 15),width=100,height=2) lf4_2.pack() ef4_2 = tk.Entry(frame3, show = None)#显示成明文形式 ef4_2.pack() lf4_3=tk.Label(frame3,text = "请输入截取时间(xx:xx:xx)",font=('Arial', 15),width=100,height=2) lf4_3.pack() ef4_3 = tk.Entry(frame3, show = None)#显示成明文形式 ef4_3.pack() def myCMDmainf4(): path1=ef4.get() name=ef4_1.get() startTime=ef4_2.get() time=ef4_3.get() ver=os.popen("ffmpeg -ss "+startTime+" -t "+time+" -i "+path1+" -vcodec copy -acodec copy "+"C:\\Users\\renboyu010214\\Desktop\\outputFile\\"+name) #ffmpeg -ss 00:00:00 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4 ver.close() tkinter.messagebox.showinfo(title='success', message="音频/视频截取成功!") bf4=tk.Button(frame3, text='确定', width=6, height=2, command=myCMDmainf4) bf4.pack() #----------------------------------------------------------------------------------------------# mainGUI.mainloop()
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“利用python+ffmpeg合并B站视频及格式转换的实例代码”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
2024年11月24日
2024年11月24日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]