# -*- coding: UTF-8 -*-
import os
import cv2
import time


# 图片合成视频
def picvideo(path, size):
    # path = r'C:\Users\Administrator\Desktop\1\huaixiao\\'#文件路径
    filelist = os.listdir(path)  # 获取该目录下的所有文件名

    '''
    fps:
    帧率：1秒钟有n张图片写进去[控制一张图片停留5秒钟，那就是帧率为1，重复播放这张图片5次] 
    如果文件夹下有50张 534*300的图片，这里设置1秒钟播放5张，那么这个视频的时长就是10秒
    '''
    fps = 24
    # size = (591,705) #图片的分辨率片
    file_path = r"/Users/virginiali/PycharmProjects/Simulation_and_modeling_natual_process/png/barness_hut_2D.mp4"  # 导出路径
    fourcc = cv2.VideoWriter_fourcc(*'mp4v')  # 不同视频编码对应不同视频格式（例：'I','4','2','0' 对应avi格式）

    video = cv2.VideoWriter(file_path, fourcc, fps, size)

    for item in filelist:
        if item.endswith('.png'):  # 判断图片后缀是否是.png
            item = path + '/' + item
            img = cv2.imread(item)  # 使用opencv读取图像，直接返回numpy.ndarray 对象，通道顺序为BGR ，注意是BGR，通道值默认范围0-255。
            video.write(img)  # 把图片写进视频

    video.release()  # 释放


picvideo('/Users/virginiali/PycharmProjects/Simulation_and_modeling_natual_process/png/', (640, 480))


'''
C中使用FFmgep

This command creates a video slideshow using a series of images that are named as img001.png, img002.png, etc. 
Each image will have a duration of 5 seconds (-r 1/5).

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p slideshow.mp4

其他使用方法：
https://www.labnol.org/internet/useful-ffmpeg-commands/28490/

'''
