视频截断程序,并将画质提高到1920*1080,声音增加10db


复制代码
import subprocess
import os
import tkinter as tk
from tkinter import ttk, messagebox, filedialog
from ttkthemes import ThemedStyle

# Default video information
default_video_info = [
    ("video1", "00:00:30", "00:01:00"),
    ("video2", "00:01:30", "00:02:00"),
    ("video3", "00:03:30", "00:05:00")
    # Add more video info tuples as needed
]

def generate_videos():
    input_file = input_file_entry.get()
    video_info_text = video_info_textarea.get("1.0", "end-1c")
    output_folder = "output_videos"

    os.makedirs(output_folder, exist_ok=True)

    video_info_lines = video_info_text.split("\n")
    video_info = [tuple(line.split()) for line in video_info_lines if len(line.split()) >= 3]

    for video_name, start_time, end_time in video_info:
        output_file = os.path.join(output_folder, f"{video_name}.mp4")

        # Remove existing file if it exists
        if os.path.exists(output_file):
            os.remove(output_file)

        cmd = [
            "ffmpeg", "-i", input_file, "-ss", start_time, "-to", end_time,
            "-vf", "scale=1920:1080", "-b:v", "2048k", "-c:v", "libx264",
            "-c:a", "aac", "-b:a", "192k", "-af", "volume=10dB",
            output_file
        ]

        subprocess.run(cmd)

    messagebox.showinfo("Completed", "Video splitting, audio volume adjustment, and quality settings completed.")

def select_input_file():
    global input_file
    input_file = filedialog.askopenfilename(filetypes=[("Video files", "*.mp4")])
    input_file_entry.delete(0, tk.END)
    input_file_entry.insert(0, input_file)

root = tk.Tk()
root.title("Video Generation Tool")

# Apply ttkthemes style
style = ThemedStyle(root)
style.set_theme("equilux")  # Set your preferred theme

# Customize background color
style.configure("TFrame", background="#e0e0e0")  # Change to your preferred color

# Calculate screen center
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x = (screen_width - 600) // 2  # Adjust window width as needed
y = (screen_height - 400) // 2  # Adjust window height as needed
root.geometry(f"600x400+{x}+{y}")

input_file_label = ttk.Label(root, text="Input File:")
input_file_label.pack(fill=tk.BOTH, padx=10, pady=(10, 0))

input_file_entry = ttk.Entry(root)
input_file_entry.pack(fill=tk.BOTH, expand=True, padx=10, pady=(0, 10))

select_button = ttk.Button(root, text="Select", command=select_input_file)
select_button.pack(fill=tk.BOTH, padx=10)

video_info_label = ttk.Label(root, text="Video Info:")
video_info_label.pack(fill=tk.BOTH, padx=10, pady=(10, 0))

video_info_textarea = tk.Text(root, height=10, width=40)
video_info_textarea.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)

# Set default video_info values
default_video_info_text = "\n".join([" ".join(info) for info in default_video_info])
video_info_textarea.insert("1.0", default_video_info_text)

generate_button = ttk.Button(root, text="Generate Videos", command=generate_videos)
generate_button.pack(fill=tk.BOTH, padx=10, pady=(0, 10))

root.mainloop()
相关推荐
feiyangqingyun1 小时前
Qt音视频开发技巧/推流带旋转角度/rtsprtmp推流/保存文件到MP4/拉流解析旋转角度
qt·音视频·qt旋转角度推流
Despacito0o2 小时前
ESP32-s3摄像头驱动开发实战:从零搭建实时图像显示系统
人工智能·驱动开发·嵌入式硬件·音视频·嵌入式实时数据库
毕设做完了吗?10 天前
视频相似度检测算法(带课设报告)
人工智能·算法·机器学习·音视频
语音之家10 天前
2025年CCF先进音频技术竞赛
人工智能·音视频
音视频牛哥10 天前
音视频全链路开发实践:基于SmartMediakit的架构设计与应用实战
音视频·大牛直播sdk·rtsp播放器·rtmp播放器·安卓rtmp播放器·rtmpplayer·linux rtsp
十年编程老舅11 天前
音视频流媒体高级开发-学习路线
ffmpeg·音视频·音视频开发·音视频编解码·c++音视频·流媒体服务器·音视频学习路线
weisian15111 天前
一款强大的音视频处理工具--FFmpeg-2--常用音频处理示例
音视频·mpeg-2
9527华安11 天前
国产安路FPGA实现MIPI视频解码转HDMI输出,基于SC500摄像头,提供TD工程源码和技术支持
fpga开发·音视频·csi·mipi·dphy·安路fpga·sc500
niech_cn11 天前
微信小程序扫码添加音频播放报错{errCode:10001, errMsg:“errCode:602,err:error,not found param“}
微信小程序·小程序·音视频
扫地僧98511 天前
免费1000套编程教学视频资料视频(涉及Java、python、C C++、R语言、PHP C# HTML GO)
java·c++·音视频