python ffmpeg解码视频_利用python+ffmpeg合并B站视频及格式转换的实例代码
利用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()
到此这篇关于利用python+ffmpeg合并B站视频及格式转换的实例代码的文章就介绍到这了,更多相关python+ffmpeg合并B站视频及格式转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
python ffmpeg解码视频_利用python+ffmpeg合并B站视频及格式转换的实例代码相关推荐
- python实现批量下载视频_利用Python实现批量下载腾讯视频!
原标题:利用Python实现批量下载腾讯视频! 导语 利用Python下载腾讯非VIP视频,也就是可以免费观看的视频.做这个的起因是最近在看一个叫"请吃红小豆吧"的动漫,一共三分钟 ...
- python爬取百度翻译视频_利用python爬取百度翻译内容
利用python可以实现对百度翻译内容的爬取,具体过程如下: 前期工作 本程序的测试环境为python3.5,Chrome浏览器.进入百度翻译的页面,点开F12进入开发者调试工具,点击network, ...
- python制作图片墙_利用python生成照片墙的示例代码
PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...
- python post请求 上传图片_利用python模拟实现POST请求提交图片的方法
本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传 ...
- python实现邮件客户端_利用python实现简单的邮件发送客户端示例
脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: ut ...
- python连接opencv库_利用Python和OpenCV库将URL转换为OpenCV格式的方法
今天的博客是直接来源于我自己的个人工具函数库. 过去几个月,有些PyImageSearch读者电邮问我:"如何获取URL指向的图片并将其转换成OpenCV格式(不用将其写入磁盘再读回)&qu ...
- python图片文字合成视频_利用Python将多张图片合成视频的实现
今天要做一个量子隧穿的的演示动画,在CSDN上看了很多大佬的文章,然而忙了接近半天才做好这件事.把踩过的坑记一下,同时这段代码也是值得记录的,因为以后也可能遇到类似的工作. 先上代码` import ...
- python powerbi知乎_利用Python调用Power BI REST API
本文是D-BI之Power BI REST API系列第三篇,讲解如何利用一段简单的Python脚本实现Power BI REST API的调用,将使用与上文完全不同的方法 前述 上文<Powe ...
- python处理nc数据_利用python如何处理nc数据详解
利用python如何处理nc数据详解 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 利用python如何处理nc数据详解.txt ] (友情提示:右键点上行txt ...
- python制作电脑软件_利用PYTHON制作桌面版爬虫软件(一)
抱歉,对长沙房地产数据的挖掘与分析[三],想了蛮久,觉得对自己的分析结果不是很理想.等我完善好了,我再发出来吧.今天继续开启新的一专题.主要讲解如何用PYTHON实现简单的桌面软件的制作. 题外话,我 ...
最新文章
- 预计2020年传感器需求超一万亿个
- Java 获取当前时间最近12个月(字符串)
- Debian 7(Wheezy)下配置Open×××
- 6421B Lab3 DNS的配置与故障排除
- 用JAVA写的word模板自动生成引擎
- 奇葩注释大盘点,你觉得哪个最牛逼?
- 2018-2019-1 20189210 《LInux内核原理与分析》第六周作业
- Hadoop Install
- VMware虚拟机与宿主无法复制的解决办法
- MapReduce 踩坑 - hadoop No FileSystem for scheme: file/hdfs
- 一起来学习丨听海华大赛第一名团队聊比赛经验和心得
- STM32工作笔记0089---UCOSIII存储管理
- PCL——4.深度图像
- Android 组件系列-----Activity生命周期
- 对‘cv::imread(cv::String const, int)’未定义的引用
- 如何下载全国的POI数据,如何获取全国的POI数据,poi数据搜索,高德poi获取,poi数据分析,poi免费数据,城市规划数据
- Android 字体ttf文件下载(含github下载地址)
- 大学计算机基础知识课本,大学计算机基础 教材简介
- 数独大师级技巧_数独游戏技巧(图解)
- vue一维码,二维码生成
热门文章
- 读《IPD华为研发之道》笔记
- 短信api的接口平台有哪些可以免费试用
- 好用的scrum敏捷开发工具有哪些?推荐3个scrum项目管理工具
- 安装西门子博图一直重启_博途V15.1安装及无限重启和.net3.5SP1错误处理解决方法...
- Kali安装Nessus
- FANUC机器人SYST-034 SOP或UOP的暂停信号丢失-警告的含义
- win10sas安装教程_Android Studio详细安装教程
- 909422229_Mysql创建序列
- CGI的介绍及简单应用
- nginx的cgi模块