国庆前下了两部老电影打算回去了给老爷子看为防止初中买的创维电视格式不兼容将U盘格式化成FAT32将电影的rmvb、mkv格式转换成mp4用VLC踩了一堆坑就换ffmpeg了Python转码MP41.配置ffmpeg-python库和ffmpeg.exe程序下载了anaconda可以直接用基础虚拟环境它带这个库conda activate base然后下载ffmpeg主程序只有ffmpeg-python调用库不行的还要有ffmpeg.execonda install -c conda-forge ffmpeg -y我这里有26-9月份的版本直接下载ffmpeg百度网盘链接下载后解压缩将文件bin目录添加到系统变量设置完成后在cmd查看where ffmpeg出现路径说明设置成功2.转码时间和转码后文件大小参考ffmpeg的preset参数可以改的更快三毛流浪记.mkv 2G用VLC转码花了10小时用ffmpeg普通模式presetmedium转码花了4小时比原文件大1.5G设置更快的参数会引起质量问题如果不急可以设置slow、slower、veryslow上班给他挂一天这样文件质量更高CPU 2G基础频率下给2个参考第一个2G文件2G文件下不同转码方式对比表转码方式耗费时间小时转码后文件大小GbVLC102.2Ffmpeg presetmedium43.5Ffmpeg presetveryslow\\第二个3M文件3M文件下不同转码方式对比表转码方式耗费时间秒转码后文件大小MbVLC504.0Ffmpeg presetmedium407.8Ffmpeg presetveryslow2007.13.源码ffmpeg.exe地址和输入、输出文件地址改为自己的import ffmpeg import os ffmpeg._run.FFERMPEG_PATH rD:\Users\Admin\Desktop\ffmpeg-2026-09-21-git-a9cbcc2bbb-full_build\bin\ffmpeg.exe def convert_to_tv_compatible_mp4(input_path:str,output_path:str,crf_value:int23): try: input_stream ffmpeg.input(input_path) process_stream ( input_stream.output( output_path, vcodeclibx264, # H.264视频编码 acodecaac, # ACC音频编码 audio_bitrate192k, # 音频码率适配电视音箱效果 vfscale1920:1080, # 强制缩放1080p presetmedium, # 转码速度和压缩比平衡 movflagsfaststart ).overwrite_output() ) print(f开始转码{os.path.basename(input_path)}) process_stream.run( capture_stdoutTrue, capture_stderrTrue, overwrite_outputTrue ) print(f转换完成文件已保存到{output_path}) except ffmpeg.Error as e: print(f转码出错{e.stderr.decode(utf8)}) if __name__ __main__: U_DISK_INPUT_FILE D:/Users/Admin/Desktop/三毛从军记.mkv U_DISK_OUTPUT_FILE D:/Users/Admin/Desktop/三毛从军记.mp4 if not os.path.exists(U_DISK_INPUT_FILE): print(f错误找不到要转码的视频{U_DISK_INPUT_FILE}请检查文件路径和文件名是否正确) else: convert_to_tv_compatible_mp4(U_DISK_INPUT_FILE,U_DISK_OUTPUT_FILE)VLC踩坑记录1.默认转码MP4无声音首先rmvb下载了Windows直接无法观看下载了VLC才可以正常观看用VLC转码了巧奔妙逃转码成功后Windows上播放没声音VLC里面播放有声音MPEG Audio应该是可以识别的Windows官网上运动图像专家组.mpg、.mpeg、.m1v、.mp2、.mp3、.mpa、.mpe、.m3u包含它2.单独设置MP4格式的音频格式为MP3无画面我把音频换成MP3画面没了3.将音频格式设置成AACWindows10上播放才正常4.大点的文件转码了视频部分片段果冻状另一部三毛从军记单文件2G转换时间太长成品部分片段果冻状跟小时候卫星国电视信号不好一样
