当前位置: 首页 > news >正文

视频转换为8K60帧率

import tkinter as tk
from tkinter import filedialog, messagebox
import av
import osdef convert_video(input_file, output_file):# 打开输入视频流input_container = av.open(input_file)# 创建输出视频流output_container = av.open(output_file, 'w')# 添加视频流并设置参数video_stream = output_container.add_stream('h264', rate=60)video_stream.height = 4320video_stream.width = 7680video_stream.pix_fmt = 'yuv420p'# 添加音频流audio_stream = Nonefor stream in input_container.streams:if stream.type == 'audio':audio_stream = output_container.add_stream('aac', rate=stream.rate)audio_stream.channels = stream.channelsbreak# 逐帧处理视频for frame in input_container.decode(video=0):# 调整大小为8Kframe_resized = frame.reformat(width=7680, height=4320)# 写入到输出容器for packet in video_stream.encode(frame_resized):output_container.mux(packet)# 处理未写入的视频帧for packet in video_stream.encode():output_container.mux(packet)# 逐帧处理音频if audio_stream:for frame in input_container.decode(audio=0):# 将音频帧写入输出容器for packet in audio_stream.encode(frame):output_container.mux(packet)# 处理未写入的音频帧for packet in audio_stream.encode():output_container.mux(packet)# 关闭容器input_container.close()output_container.close()messagebox.showinfo("完成", "视频转换成功,已维持原视频时长!")def open_file():input_file = filedialog.askopenfilename(title="选择输入视频",filetypes=(("MP4 文件", "*.mp4"), ("所有文件", "*.*")))if input_file:# 获取输入文件的基础名称和扩展名base_name, ext = os.path.splitext(os.path.basename(input_file))# 创建新的输出文件名output_file = filedialog.asksaveasfilename(title="保存输出视频",defaultextension=".mp4",initialfile=f"{base_name}_8k_60fps{ext}",filetypes=(("MP4 文件", "*.mp4"), ("所有文件", "*.*")))if output_file:convert_video(input_file, output_file)# 创建主窗口
root = tk.Tk()
root.title("视频转换器")
root.geometry("300x150")# 创建按钮以打开文件
btn_open = tk.Button(root, text="打开视频文件", command=open_file)
btn_open.pack(pady=20)# 启动应用程序
root.mainloop()

首先,确保安装必要的库:

pip install av tkinter


http://www.mrgr.cn/news/56865.html

相关文章:

  • 打开游戏提示丢失(或找不到)XINPUT1_3.DLL的多种解决办法
  • 1.DBeaver连接hive数据库
  • Zabbix进阶实战!将告警推送到Syslog服务器详细教程
  • [C#][winform]基于yolov8的道路交通事故检测系统C#源码+onnx模型+评估指标曲线+精美GUI界面
  • matlab提取运动物体的坐标
  • SpringBoot集成Spring security 2024.10(Spring Security 6.3.3)
  • opencv - py_photo - py_non_local_means 非局部均值去噪
  • YOLO11改进-模块-引入分层互补注意力混合器HRAMi
  • AI大模型会对我们的生活带来什么改变?普通人终于有机会感觉到大模型的用处了
  • 网址工具(完善中)
  • ssh scp提示Bad configuration option: GSSAPIKexAlgorithms
  • Nodejs上传阿里云oss图片案例
  • antv g6
  • Ping32数据保护工具,提供全面的数据安全解决方案
  • mono源码交叉编译 linux arm arm64全过程
  • stm32f103zet6 ili9341(fsmc) freertos 制作数字电子时钟
  • 志华软件 openfile.aspx 任意文件读取漏洞复现
  • 【无人机设计与控制】机器人RRT路径规划或者无人机二维平面航迹规划
  • 【算法】归并排序概念及例题运用
  • 在线图片翻译有哪些?快来试试这5款
  • 大华智能云网关注册管理平台 doLogin SQL注入漏洞复现(CNVD-2024-38747)
  • Bitcoin全节点搭建
  • 又进入火坑了,该何去何从
  • PyQt 程序使用 Inno Setup 打包成 Setup 安装包教程
  • 【zlm】h264 vp9 尝试研究
  • 探讨程序搭建