Python实现mp4文件转yuv裸码流

发布时间:2026/10/22 17:49:36
Python实现mp4文件转yuv裸码流 from tkinter import Tk, filedialog, messagebox import subprocess import json # FFmpeg路径 FFMPEG_EXE rD:\ffmpeg-9.0.2-full_build\bin\ffmpeg.exe FFPROBE_EXE rD:\ffmpeg-9.0.2-full_build\bin\ffprobe.exe # def get_video_info(mp4_path): cmd [ FFPROBE_EXE, -v, error, -select_streams, v:0, -show_entries, streamwidth,height,r_frame_rate, -of, json, mp4_path ] result subprocess.run(cmd, capture_outputTrue, textTrue) info json.loads(result.stdout) stream info[streams][0] w stream[width] h stream[height] r_frame stream[r_frame_rate] return w, h, r_frame def mp4_to_yuv(): root Tk() root.withdraw() mp4_path filedialog.askopenfilename( title请选择MP4视频文件, filetypes[(视频, *.mp4 *.mkv *.avi *.mov), (所有文件, *.*)] ) if not mp4_path: messagebox.showinfo(提示, 未选择文件程序退出) return yuv_path filedialog.asksaveasfilename( title保存YUV文件, defaultextension.yuv, filetypes[(YUV裸流, *.yuv)] ) if not yuv_path: messagebox.showinfo(提示, 未选择保存路径程序退出) return try: print(正在读取视频信息...) w, h, fps_str get_video_info(mp4_path) print(f视频分辨率: {w}x{h}) print(f原始帧率: {fps_str}) pix_fmt yuv420p print(f\n开始导出YUV像素格式:{pix_fmt}开启去隔行) # 重点新增 -vf yadif 去隔行滤镜 cmd [ FFMPEG_EXE, -y, -i, mp4_path, -vf, yadif, # 去隔行消除条纹花屏 -c:v, rawvideo, -pix_fmt, pix_fmt, -r, fps_str, yuv_path ] subprocess.run(cmd, checkTrue) msg ( f✅ MP4转YUV完成\n\n f分辨率: {w}x{h}\n f帧率: {fps_str}\n f像素格式: {pix_fmt}\n f✅已启用去隔行处理 ) print(f\n{msg}) messagebox.showinfo(转换成功, msg) except Exception as e: messagebox.showerror(转换失败, f错误: {str(e)}) print(f异常: {str(e)}) if __name__ __main__: mp4_to_yuv()以上代码运行前需要先下载ffmpeg工具包下载路径https://www.gyan.dev/ffmpeg/builds/需要放在D盘D:\ffmpeg-9.0.2-full_build\bin注意不要嵌套多层文件夹bin 直接在 ffmpeg 根目录下面..CMD直接测试用ffmpeg 将 mp4转化成yuv源视频路径C:/Users/andin/Desktop/源视频.mp4导出yuv路径C:/Users/andin/Desktop/test1.yuv对应命令D:\ffmpeg-9.0.2-full_build\bin\ffmpeg.exe -y -i C:/Users/andin/Desktop/源视频.mp4 -pix_fmt yuv420p -colorspace bt709 -color_primaries bt709 -color_trc bt709 -color_range pc -c:v rawvideo -r 30000/1001 C:/Users/andin/Desktop/test1.yuv用ffmpeg 将 yuv转化成mp4选中的yuv路径C:/Users/andin/Desktop/test1.yuv输出的mp4路径C:/Users/andin/Desktop/test2.mp4对应命令D:\ffmpeg-9.0.2-full_build\bin\ffmpeg.exe -y -f rawvideo -video_size 1280x720 -pix_fmt yuv420p -color_range pc -r 30000/1001 -i C:/Users/andin/Desktop/test1.yuv C:/Users/andin/Desktop/test2.mp4效果视频格式转化的视频

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询