zoukankan      html  css  js  c++  java
  • 视频加字幕

    import os
    
    os_sep = os.sep
    this_file_abspath = os.path.abspath(__file__)
    this_file_dirname, this_file_name = os.path.dirname(this_file_abspath), os.path.abspath(__file__).split(os_sep)[
        -1]
    
    f_mp3 = '{}{}{}'.format(this_file_dirname, os_sep, 'auido.mp3')
    from playsound import playsound
    
    import time
    import math
    
    this_time = time.time()
    
    # playsound(f_mp3)
    
    # t_spend = time.time() - this_time
    t_spend = 58.777058839797974
    # 音频的秒数
    t_spend = math.ceil(t_spend)
    import cv2
    import glob
    
    
    
    '''
    python+opencv视频图像相互转换 - CSDN博客 https://blog.csdn.net/m0_37733057/article/details/79023693
    链接:https://www.zhihu.com/question/49558804/answer/343058915
    
    OpenCV: Drawing Functions in OpenCV https://docs.opencv.org/3.1.0/dc/da5/tutorial_py_drawing_functions.html
    
    '''
    # 每秒传输帧数(Frames Per Second)
    fps = 100  # 保存视频的FPS,可以适当调整 FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会愈流畅。通常,要避免动作不流畅的最低是30。某些计算机视频格式,每秒只能提供15帧。
    fps = 15
    fps = 5
    
    fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')  # opencv3.0
    
    f_v = '{}{}'.format(int(time.time()), 'saveVideo.avi')
    f_img_d = '{}{}{}{}{}'.format(this_file_dirname, os_sep, 'mypng', os_sep, '*.jpg')
    imgs = glob.glob(f_img_d)
    
    img = cv2.imread(imgs[0])
    img_size = (img.shape[1], img.shape[0])
    videoWriter = cv2.VideoWriter(f_v, fourcc, fps, img_size)
    
    """
    用图片总数均分音频时间
    """
    os_delay_factor=0.14
    os_delay_factor=0.11
    myinterval = t_spend / len(imgs)*os_delay_factor
    
    for imgname in imgs:
        this_time = time.time()
        while time.time() - this_time < myinterval:
            print(imgname)
            img = cv2.imread(imgname)
            mytxt = '{}{}'.format('OpenCV-text-xl-', time.time())
            text, font = mytxt, cv2.FONT_HERSHEY_SIMPLEX
            org_step=10
            org=(int(img.shape[1]/2-org_step), int(img.shape[0]/2-org_step))
            cv2.putText(img, text, org, font, 1, (0, 0, 0), 2, cv2.LINE_AA)
            videoWriter.write(img)
            videoWriter.write(img)
    
    videoWriter.release()
    

      

  • 相关阅读:
    HDU 4611 Balls Rearrangement 数学
    Educational Codeforces Round 11 D. Number of Parallelograms 暴力
    Knockout.Js官网学习(简介)
    Entity Framework 关系约束配置
    Entity Framework Fluent API
    Entity Framework DataAnnotations
    Entity Framework 系统约定配置
    Entity Framework 自动生成CodeFirst代码
    Entity Framework CodeFirst数据迁移
    Entity Framework CodeFirst尝试
  • 原文地址:https://www.cnblogs.com/rsapaper/p/8758906.html
Copyright © 2011-2022 走看看