首页 > 其他 > 详细

028、FLV视频转MP3音频文件

时间:2021-02-02 18:58:37      阅读:23      评论:0      收藏:0      [点我收藏+]
问题描述:
网上下载了一些FLV视频文件,想转换为MP3音频文件;方便播放。
为方便使用,用tkinter图形化界实现。程序打包后,可以分发共享。
 
程序代码:
 
import moviepy.editor as mp
import tkinter as tk
import tkinter.filedialog
import os
import sys


# “转换”按钮,FLV转换为MP3文件
def convert():
    # 先设置源文件夹、目标文件夹为空。
    source_address = ‘‘
    target_address = ‘‘
    if en1.get() == "":
        t1.insert(‘end‘, ‘请选择源文件夹!\n‘)
        t1.update()
        # 移动滚动条,t1能显示最新内容。
        t1.yview_moveto(1)
    else:
        source_address = f‘{en1.get()}‘
    if en2.get() == "":
        t1.insert(‘end‘, ‘请选择目标文件夹!\n‘)
        t1.update()
        # 移动滚动条,t1能显示最新内容。
        t1.yview_moveto(1)
    else:
        target_address = f‘{en2.get()}‘

    # 源文件夹、目标文件夹非空,获取文件并转换。
    if source_address != ‘‘ and target_address != ‘‘:
        # 获取指定目录下的所有文件
        file_list = os.listdir(source_address)
        for file_address in file_list:
            # 获取文件的绝对路径(不包含后缀.flv)
            file_name = file_address.split(‘.‘)[0]
            # 拼接文件的绝对路径(dir+xxx.flv)
            file_address = os.path.join(source_address, file_address)
            # print(‘需要转换的文件>>>>>>>‘ + file_address)
            t1.insert(‘end‘, f‘需要转换的文件>>>>>>>{file_address}\n‘)
            t1.update()
            # 移动滚动条,t1能显示最新内容。
            t1.yview_moveto(1)
            # 调用moviepy库的方法
            clip = mp.AudioFileClip(file_address)
            # 拼接转换后的文件路径
            file_name = file_name + ‘.mp3‘
            out_address = os.path.join(target_address, file_name)
            # print(‘转换后的文件>>>>>>>>‘ + out_address)
            t1.insert(‘end‘, f‘转换后的文件>>>>>>>>{out_address}\n‘)
            t1.insert(‘end‘, f‘正在转换...........\n‘)
            t1.update()
            # 移动滚动条,t1能显示最新内容。
            t1.yview_moveto(1)
            # 转换FLV,同时保存为mp3音频文件
            clip.write_audiofile(out_address)

        t1.insert(‘end‘, f‘转换结束!\n‘)
        t1.update()
        # 移动滚动条,t1能显示最新内容。
        t1.yview_moveto(1)


# 选择源文件夹
def select_s():
    foldername = tkinter.filedialog.askdirectory()
    if foldername != ‘‘:
        en1.insert(0, foldername)


# # 选择目标文件夹
def select_t():
    foldername = tkinter.filedialog.askdirectory()
    if foldername != ‘‘:
        en2.insert(0, foldername)


# “退出”按钮,退出程序
def exit_sys():
    sys.exit()


if __name__ == ‘__main__‘:
    fm_main = tk.Tk()
    fm_main.title("FLV批量转换为MP3_v1.0")
    # 获取显示区域的宽度
    screenWidth = fm_main.winfo_screenwidth()
    # 获取显示区域的高度
    screenHeight = fm_main.winfo_screenheight()
    # 设置窗口宽度
    width = 586
    # 设置窗口高度
    height = 402
    left = (screenWidth - width) / 2
    top = (screenHeight - height) / 2
    # 宽度x高度+x偏移+y偏移
    # 在设定宽度和高度的基础上指定窗口相对于屏幕左上角的偏移位置
    # fm_main.geometry(‘586x492‘)
    fm_main.geometry(‘%dx%d+%d+%d‘ % (width, height, left, top))
    fm_main.resizable(0, 0)  # 设置窗口大小不可变

    # v2 = tk.StringVar()
    lb1 = tk.Label(fm_main, text="请输入要转换的FLV文件路径:").grid(row=0, column=0, sticky=tk.W)
    # sticky=N + E + W,在水平、垂直方向上延伸,填满整个单元格
    en1 = tk.Entry(fm_main)
    en1.grid(row=0, column=1, sticky=tk.N + tk.E + tk.W)
    lb2 = tk.Label(fm_main, text="请输入目标文件存放路径:")
    lb2.grid(row=1, column=0, sticky=tk.W)
    en2 = tk.Entry(fm_main)
    en2.grid(row=1, column=1, sticky=tk.N + tk.E + tk.W)

    b1 = tk.Button(fm_main, text=‘...‘, command=select_s)
    b1.grid(row=0, column=2, sticky=tk.N + tk.E + tk.W)
    b2 = tk.Button(fm_main, text=‘...‘, command=select_t)
    b2.grid(row=1, column=2, sticky=tk.N + tk.E + tk.W)

    b3 = tk.Button(fm_main, text=‘转换‘, command=convert)
    b3.grid(row=4, column=0, sticky=tk.N + tk.E + tk.W)
    b4 = tk.Button(fm_main, text=‘退出‘, command=exit_sys)
    b4.grid(row=4, column=1, sticky=tk.N + tk.E + tk.W)

    # columnspan=2,表示t1占用0,1二列
    t1 = tk.Text(fm_main)
    t1.grid(row=7, column=0, columnspan=2, sticky=tk.N + tk.E + tk.W)

    # 创建滚动条
    scroll = tk.Scrollbar(orient="vertical", command=t1.yview)

    # 将滚动条填充
    t1.config(yscrollcommand=scroll.set)
    scroll.grid(row=7, column=2, sticky=tk.S + tk.W + tk.E + tk.N)

    # 将滚动条与文本框关联
    scroll[‘command‘] = t1.yview
    # scroll.config(command=t1.yview)
    # 将滚动条填充
    t1.config(yscrollcommand=scroll.set)

    fm_main.mainloop()

  

028、FLV视频转MP3音频文件

原文:https://www.cnblogs.com/lqsj2018/p/14363073.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!