Media Master 配置文件规范

转码任务分为两种,一种是单个视频的转码(single),一种是一系列视频的转码(series),系列视频的转码要求同一个文件夹的目标文件可以使用正则表达式获取,并且根据集数字符串唯一确定单个视频.

以下为config.json的格式

  • basic_config
    • delay_start_sec, int
    • log_config_filepath, str
  • all_mission_config, list, 会按照顺序执行任务
    1. mission 1, dict
      • type, str, available option: "single", "series"

      • type_related_config, dict, 和type相关的设置 以下为type为"single"时必须指定,为"series"时可以不指定

        • input_video_filepath, str
        • external_subtitle_info_list, list, 外部输入字幕信息的列表
          1. subtitle info 1, dict
            • filepath, str
            • title, str
            • language, str, 必须使用ISO639-2或ISO639-1的语言代码
            • delay_ms, int
            • track_index_list, list, 该列表不为空时,认为该文件为容器文件,可以通过该参数指定容器内需要的字幕轨,按照顺序输出,此时上面的title、language、delay_ms参数由原来的格式变为该格式的列表,顺序为重新排序后的顺序,如果track_index_list长度大于原来轨道的长度,无视track_index_list的排序
        • external_audio_info_list, list, 外部输入音频信息的列表, 不为空就会加入处理行列, 得到并且轨道索引优先级低于 内部音轨
          1. audio info 1, dict
            • filepath, str
            • title, str
            • language, str, 必须使用ISO639-2或ISO639-1的语言代码
            • delay_ms, int
            • track_index_list, list, 该列表不为空时,认为该文件为容器文件,可以通过该参数指定容器内需要的音轨,按照顺序输出,此时上面的title、language、delay_ms参数由原来的格式变为该格式的列表,顺序为重新排序后的顺序,如果track_index_list长度大于原来轨道的长度,无视track_index_list的排序
        • external_chapter_info, dict, 从外部指定输入章节信息,若以xml结尾,必须是能够被mkvmerge识别的章节格式,若不以xml结尾,当作视频处理,使用Mediainfo读取其章节信息,若不存在章节信息,会报错
          • filepath, str
        • segmented_transcode_config_list, list, 存放该集需要指定的不同配置列表,该参数只对x265有效, key episode_num value config, 若区间未指定,那就为通用的设置值,列表未空就不使用
          • config_1, dict, 该集的配置1
            • video_transcoding_cmd_param_template, list or str, 转码参数模板, 可以使用预配置的参数模板,存储在param_template.json中,在param_template.json中对应参数的dict中,值为参数模板列表,使用预配置参数模板时,该项为str,为参数模板的键。
            • frame_server_template_filepath, str
            • frame_interval_list, list,
              • element_1, dict
                • first_frame_index, int,
                • last_frame_index, int,
        • output_video_dir, str
        • output_video_name, str, 不包括后缀的输出文件名

        以下为type为"series"时必须指定,为"single"时可以不指定

        • input_video_dir, str
        • input_video_filename_reexp, str, 第一个子表达式必须为阿拉伯数字集数字符串
        • external_subtitle_info_list, list, 外部输入字幕信息的列表
          1. subtitle info 1, dict
            • subtitle_dir, str
            • subtitle_filename_reexp, str, 第一个子表达式必须为阿拉伯数字集数字符串
            • title, str
            • language, str, 必须使用ISO639-2或ISO639-1的语言代码
            • delay_ms, dict, key: episode, value: delay_ms, int, 若为delay_ms为0,可以省略
            • rack_index_list, list, 该列表不为空时,认为该文件为容器文件,可以通过该参数指定容器内需要的字幕轨,按照顺序输出,此时上面的title、language参数由原来的格式变为该格式的列表,delay_ms参数的值仍然为一个dict,该dict键为集数,值为对应不同流索引的列表列表,顺序为重新排序后的顺序,如果track_index_list长度大于原来轨道的长度,无视track_index_list的排序
        • external_audio_info_list, list, 外部输入字幕信息的列表
          1. audio info 1, dict
            • audio_dir, str
            • audio_filename_reexp, str, 第一个子表达式必须为阿拉伯数字集数字符串
            • title, str
            • language, str, 必须使用ISO639-2或ISO639-1的语言代码
            • delay_ms, dict, key: episode, value: delay_ms, int, 若为delay_ms为0,可以省略
            • track_index_list, list, 该列表不为空时,认为该文件为容器文件,可以通过该参数指定容器内需要的音轨,按照顺序输出,此时上面的title、language参数由原来的格式变为该格式的列表,delay_ms参数的值仍然为一个dict,该dict键为集数,值为对应不同流索引的列表列表,顺序为重新排序后的顺序,如果track_index_list长度大于原来轨道的长度,无视track_index_list的排序
        • external_chapter_info, dict, 从外部指定输入章节信息,若以xml结尾,必须是能够被mkvmerge识别的章节格式,若不以xml结尾,当作视频处理,使用Mediainfo读取其章节信息,若不存在章节信息,会报错
          • chapter_dir, str
          • chapter_filename_reexp, str, 第一个子表达式必须为阿拉伯数字集数字符串
        • segmented_transcode_config, dict, 该参数只对x265有效, key episode_num value config, 若集数或集数中区间未指定,那就为通用的设置值,
          • 1, list, 存放该集需要指定的不同配置列表,列表为空就不使用
            • config_1, dict, 该集的配置1
              • video_transcoding_cmd_param_template, list or str, 转码参数模板, 可以使用预配置的参数模板,存储在param_template.json中,在param_template.json中对应参数的dict中,值为参数模板列表,使用预配置参数模板时,该项为str,为参数模板的键。
              • frame_server_template_filepath, str
              • frame_interval_list, list,
                • element_1, dict
                  • first_frame_index, int, 该帧索引为源视频的帧索引
                  • last_frame_index, int, 该帧索引为源视频的帧索引
        • output_video_dir, str
        • output_video_name_template_str, str, 必须包含一个python format字符串格式的显示控制字符串,且其变量名为episode,例如{episode:0>2},右对其,占两个,用0补空位
        • episode_list, list or str, 元素为int,会按照顺序转码, 若为str时,必须满足"int~int"的形式,可以自动生成集数, 支持顺序和逆序, 例如: "1~3"会生成[1,2,3], "4~2"会生成[4,3,2]
      • general_config, dict, 通用的设置

        • cache_dir, str
        • package_format, str, available option: "mkv", "mp4", 若选择了mp4,将只会保存视频、音频和章节
        • thread_bool, bool, 该任务是否用多线程进行
        • video_related_config, dict, 视频相关的设置
          • video_process_option, str, available option: "copy", "transcode",默认只处理默认视频轨,多视频轨暂不考虑
          • output_full_range_bool, bool
          • video_title, str, 不论如何,都会强行写入
          • video_language, str, 必须使用ISO639-2或ISO639-1的语言代码, 不论如何,都会强行写入
          • frame_server, str, available option: "vspipe",""
          • frame_server_template_filepath, str
          • frame_server_template_config, dict, 存储模板的配置, 模板必须包含的键:"input_filepath","input_full_range_bool","output_full_range_bool","{output_video_width","output_video_height". 模板可选值:"{{input_filepath}}","{{input_full_range_bool}}","{{output_full_range_bool}}","{{input_video_width}}","{{input_video_height}}","{{2x_input_video_width}}","{{2x_input_video_height}}","{{4x_input_video_width}}", "{{4x_input_video_height}}","{{output_fps_num}}","{{output_fps_den}}", 每个模板的键,如果对应的模板(即加上{{}})在脚本中存在,会将其替换为该键的值,若该键的值为合法的模板,会将其替换为对应的数值
          • video_transcoding_method, str, option: "x264","x265","nvenc"
          • video_transcoding_cmd_param_template, list or str, 转码参数模板, 可以使用预配置的参数模板,存储在param_template.json中,在param_template.json中对应参数的dict中,值为参数模板列表,使用预配置参数模板时,该项为str,为参数模板的键。
          • video_transcoding_cmd_param_template_config, dict, 自定义转码参数模板键值对
          • gop_segmented_transcode_config, dict, 该参数只对X265有效
            • gop_frame_cnt, int,
          • output_fps, str, 指定命令行的输出帧率, 为空字符串""时,默认使用原视频帧率,不为空时,使用该帧率作为视频的输出帧率,若格式为"xxfps"时,例如"60fps",会根据视频源帧率计算输出帧率至60fps,原帧率为24000/1001,计算输出帧率至60000/1001,原帧率为24,计算输出帧率为60。并且该值会指定给脚本模板"{{output_fps_num}}","{{output_fps_den}}"。
          • output_frame_mode, str, "","auto"代表根据封装选择合适的模式。 "unchange"代表为原来的帧率模式。"vfr"代表vfr。"cfr"代表cfr。输出帧率模式为vfr,无法改变帧率。
          • output_sar, str, 指定命令行的输出sar, "","unchange"代表不改变sar,除此之外必须按照"xx:xx"的模式指定,比如"1:1","32:27"
          • output_dynamic_range_mode, str, 指定输出的动态范围模式,可以在转码中复制hdr参数, "","unchange"代表不改变,除此之外必须按照"sdr"或"hdr"
        • audio_related_config, dict, 音频相关的设置
          • audio_prior_option, str, available option: "internal", "external"
          • external_audio_process_option, str, available option: "copy", "transcode"
          • internal_audio_track_to_process, str, available option: "default","all"
          • internal_audio_process_option, str, available option: "copy", "transcode", "skip"
          • internal_audio_info_list, list, 内部音频信息的列表, 按照音频轨的原顺序指定, 若源视频有n个音轨,输出音轨的信息就从前n个当中获得,多了没关系,如果少了只会指定已有的,剩余的复制
            1. audio info 1, dict
              • title, str
              • language, str, 必须使用ISO639-2或ISO639-1的语言代码
              • delay_ms_delta, int, delay_ms在原视频的delay_ms上的改变量
          • internal_audio_track_order_list, list, 将原音轨的位置(优先级)调换,列表中的数字索引代表原位置,该数字索引在列表中的位置代表目标位置,数字索引从0开始,例如[1,2,0]代表将原来的第0个音轨变成第2个音轨,将第1个音轨变成第0个音轨,将第2个音轨变成第1个音轨,若原音轨数多于列表的长度(可以为空),为指定的音轨会按照原顺序排列,若原音轨数小于列表的长度,会抛出错误。
          • audio_transcoding_method, str, available option: "opus", "qaac"
          • audio_transcoding_cmd_param_template, list or str, 转码参数模板, 可以使用预配置的参数模板,存储在param_template.json中,在param_template.json中对应参数的dict中,值为参数模板列表,使用预配置参数模板时,该项为str,为参数模板的键。
        • subtitle_related_config, dict, 字幕相关的设置
          • subtitle_prior_option, str, available option: "internal", "external"
          • copy_internal_subtitle_bool, bool
          • internal_subtitle_info_list, list, 内部字幕信息的列表, 按照字幕轨的顺序指定, 若源视频有n个字幕轨,输出字幕轨的信息就从前n个当中获得,多了没关系,如果少了只会指定已有的,剩余的复制
            1. subtitle info 1, dict
              • title, str
              • language, str, 必须使用ISO639-2或ISO639-1的语言代码
          • internal_subtitle_track_order_list, list, 将原字幕的位置(优先级)调换,列表中的数字索引代表原位置,该数字索引在列表中的位置代表目标位置,数字索引从0开始,例如[1,2,0]代表将原来的第0个字幕变成第2个字幕,将第1个字幕变成第0个字幕,将第2个字幕变成第1个字幕,若原字幕数多于列表的长度(可以为空),为指定的字幕会按照原顺序排列,若原字幕数小于列表的长度,会抛出错误。
        • chapter_related_config, dict, 章节信息相关的设置
          • copy_internal_chapter_bool, bool, 源视频中如果存在章节信息就复制,若为true,而且外部章节也存在,会优先选择外部的
        • attachment_related_config, dict, 附件相关的设置
          • copy_internal_attachment_bool, bool, 源视频中如果存在附件就复制
          • external_attachment_filepath_list, list, 从外部指定输入附件

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

6 + 11 =