zoukankan      html  css  js  c++  java
  • 做bad apple第二步: python如何将视频变成一帧帧的图片,如何将一帧帧的图片转为视频

    直接上代码

    """视频转图片"""
    port cv2
    def getphoto(video_in, video_save):
    cap = cv2.VideoCapture(video_in) # 打开视频文件
    n_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) # 视频的帧数
    fps = cap.get(cv2.CAP_PROP_FPS) # 视频的帧率
    dur = n_frames / fps # 视频的时间
    num_frame = 0
    judge = cap.isOpened()
    while judge:
    flag, frame = cap.read() # flag是读取状态,frame下一帧
    cv2.imshow('video', frame) # capture
    if cv2.waitKey(0) == 27:
    break
    if flag:
    num_frame += 1
    # print("正在保存第%d张照片" % num_frame)
    # cv2.imwrite('a\' + str(num_frame) + '.jpg', frame) # cv2.imwrite(‘路径’ + ‘名字’ + ‘后缀, 要存的帧)
    # cv2.waitKey(1)
    # # new_path = str(num_frame) + '.jpg'
    # # cv2.imencode('.jpg', frame)[1].tofile(new_path)
    else:
    break

    print("视频时长: %d " % dur)
    print("视频共有帧数: %d 保存帧数为: %d" % (n_frames, num_frame))
    print("每秒的帧数(FPS): %.1lf" % fps)

    def main():
    video_in = 'apple.flv'
    video_save = '2th'
    getphoto(video_in, video_save)


    if __name__ == '__main__':
    main()

    """图片转视频"""
    import cv2
    import os

    def getvideo(photo_path, video_name, fps):
    filelist = os.listdir(photo_path)
    size = (1440, 1080)
    video = cv2.VideoWriter(video_name, cv2.VideoWriter_fourcc('I', '4', '2', '0'), fps, size)
    num = int(0)
    for item in filelist:
    # print(item)
    num += 1
    print('转化到%d' % num)
    if item.endswith('.jpg'):
    item = photo_path + item
    img = cv2.imread(item)
    video.write(img)
    video.release()
    cv2.destroyAllWindows()

    def main():
    photo_path = 'E:\try apple\aa\'
    video_name = 'new.avi'
    fps = 30
    getvideo(photo_path, video_name, fps)

    if __name__ == '__main__':
    main()
    
    

    我想说的恶心的地方是:图片转视频时,一定不要把图片的像素大小弄错,我为此白白从凌晨到凌晨2点找bug,各种百度。

    还有就是 filelist = os.listdir(photo_path) 这个东西输出后发现不是按照文件名的字典序,像是个二维数组,但是奇怪的是明明不是顺序读取图片的,但是合成后的视频竟然是正确的。但是如果你的图片种有一些一样的图片,合成的视频就会总是闪你那个一样的图片。

    我试了下500张图片,钱50张是开场全是黑屏,合成的视频没有开场,但是总是闪黑屏,把这50张照片删了之后就好了。

  • 相关阅读:
    《统计学习方法》笔记十 隐马尔可夫模型
    《统计学习方法》笔记九 EM算法及其推广
    《统计学习方法》笔记八 提升方法
    《统计学习方法》笔记七(3) 支持向量机——非线性支持向量机
    拜拜~~~
    拓扑排序+DP CF721C Journey
    数学 CF1068B LCM
    扩展欧拉定理【洛谷P4139】 上帝与集合的正确用法
    浅谈扩展欧拉定理
    数论 CF230B T-primes
  • 原文地址:https://www.cnblogs.com/philo-zhou/p/12702769.html
Copyright © 2011-2022 走看看