合成 b站视频的一段脚本

# -*- coding: utf-8 -*-
import json
import os
import sys
import subprocess

reload(sys)
sys.setdefaultencoding("utf8")


def read_json_file(path):
    if path is None or not os.path.exists(path):
        print ("File not exist: %s" % path)
        return None

    with open(path, 'r') as f:
        _jsonstr = f.read()
        return json.loads(_jsonstr, "utf-8")

    return None


if __name__ == '__main__':
    _work_dir = "E:/838842729"
    _ffmpegPath = "C:/Program Files (x86)/FormatFactory/ffmpeg.exe"
    _out_path = 'E:/output/'

    _files = os.listdir(_work_dir)

    for x in _files:
        _real_path = os.path.join(_work_dir, x)

        _real_json = os.path.join(_real_path, "entry.json")

        _data = read_json_file(_real_json)
        if _data is not None:
            _title = _data['page_data']['part']

            _video_path = os.path.join(_real_path, "32/video.m4s")
            _audio_path = os.path.join(_real_path, "32/audio.m4s")

            if os.path.exists(_video_path) and os.path.exists(_audio_path):
                _cmd = '"' + _ffmpegPath + '" -i "' + _video_path 
                       + '" -i "' + _audio_path + '" '
                _normal_cmd = ' -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0  '
                _out_temp = os.path.join(_out_path, 'temp.mp4')

                _cmd = _cmd + _normal_cmd + _out_temp
                if os.path.exists(_out_temp):
                    os.remove(_out_temp)

                print _cmd
                subprocess.call(_cmd, shell=True)

                if os.path.exists(_out_temp):
                    _out_file = os.path.join(_title, ".mp4")
                    os.rename(_out_temp, _out_file)

  

合成 b 站的 音频及视频脚本.

作者:闵天
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/checkway/p/13556489.html