You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Avidemux Tinypy脚本仅加载文件不执行转码处理问题问询

故障原因

脚本只加载文件不做转码的核心原因是代码缩进+分支逻辑错误,所有转码处理代码都属于永远不会被执行的死代码:

  • adm.loadVideo() 接口加载视频失败时返回0,加载成功返回非0值,原代码把全部转码、音轨配置、保存逻辑都写在了「加载失败」的if判断分支内
  • 加载失败的分支中,弹出错误提示后立刻执行raise抛出异常终止流程,后面跟着的转码相关代码永远不会触发
  • 当视频加载成功时,脚本会直接跳过整个if分支,打印一句Done就结束当前文件处理,自然不会执行任何转码操作。
修正后的完整脚本
gui=Gui()
adm=Avidemux()
ext="mp4"
inputFolder="c:\\tmp\\"

def convert(filein):
    # 仅在加载失败时抛出错误、终止流程
    if(0 == adm.loadVideo(filein)):
        gui.displayError("oops","cannot load "+filein)
        raise
    # 以下为加载成功后执行的处理逻辑,缩进与if判断同级
    adm.videoCodec("Copy")
    adm.audioClearTracks()
    adm.setSourceTrackLanguage(0,"und")
    if adm.audioTotalTracksCount() <= 0:
        raise("Cannot add audio track 0, total tracks: " + str(adm.audioTotalTracksCount()))
    adm.audioAddTrack(0)
    adm.audioCodec(0, "Lame")
    adm.audioSetDrc(0, 1)
    adm.audioSetShift(0, 0, 0)
    adm.audioSetNormalize2(0, 2, 100, -30)
    adm.setContainer("MP4", "muxerType=0", "optimize=1", "forceAspectRatio=False", "aspectRatio=1", "displayWidth=1280", "rotation=0", "clockfreq=0")
    adm.save(filein+".converted.mp4")
    print("Done processing: "+filein)

# 主流程
list=get_folder_content(inputFolder,ext)
if(list is None):
    raise
for i in list:
    convert(i)
print("All files converted")
额外注意点
  • 修正后转码逻辑放在if判断块外部,只有加载成功才会执行
  • 调整了完成提示的输出内容,会打印当前处理完成的文件名,方便排查进度
  • 脚本会在指定目录下生成原文件名.converted.mp4格式的输出文件,不会覆盖原文件

内容的提问来源于stack exchange,提问作者dc775

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 01:42:28