首页 > 解决方案 > 如何在 Avidmeux tinypy 脚本中设置输入格式列表

问题描述

我为 Avidemux 应用程序编写了一个脚本来读取一个文件夹并获取该文件夹中的所有视频文件,然后根据文件大小将它们分成多个部分。

问题在于 get_folder_content 函数中用于检查文件夹中文件格式的 input_ext 变量。它只有一种格式,我无法设置格式列表以从文件夹中检查它。

input_ext 变量只获得一种格式,但我想为其设置一堆格式。

我的代码是这个

adm = Avidemux()
gui = Gui()

# file set list of  of input files
# input_ext = 'mp4'
input_ext = 'mkv'

# file extension for output files
output_ext = 'MKV'


def convert_file(input_file, output_folder):
    file_size = get_file_size(input_file)

    number_of_part = math.ceil(file_size/2037760000)#equal to 1990 MB 2037760000
    if number_of_part >1:
        for part in range(0,number_of_part):
            file_name = " ".join(basename(input_file).split('.')[0:-1])
            output_file = output_folder + '/' +file_name+'_part'+str(part+1)+'.mkv'
            adm.loadVideo(input_file)
            len = adm.markerB
            adm.clearSegments()
            adm.addSegment(0, 0, adm.markerB)
            adm.markerA = (part/number_of_part)*len
            adm.markerB = ((part+1)/number_of_part)*(len)
            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, "copy")
            adm.audioSetDrc(0, 0)
            adm.audioSetShift(0, 0, 0)
            adm.setContainer("MKV", "forceAspectRatio=False", "displayWidth=1280", "displayAspectRatio=2", "addColourInfo=False", "colMatrixCoeff=2", "colRange=0", "colTransfer=2", "colPrimaries=2")
            adm.save(output_file)

def main():
    input_folder = gui.dirSelect("Select the source folder")
    
    # input_folder = 
    files = get_folder_content(input_folder, input_ext)
    if files is None:
        gui.displayError("Error", "Folder doesn't containt any ." + input_ext+ " file")
        return 0

    output_folder = gui.dirSelect("Select the output folder")
    # output_folder = 
    for one_file in files:
            convert_file(one_file, output_folder)
    
    print("Done")

main()

我想像这样使用 input_ext : input_ext = ['mkv','mp4']

另外,我找不到tinypy的lib文档来读取函数并找到解决方案

标签: python

解决方案


推荐阅读