m0_68943397 2024-08-06 00:38 采纳率: 100%
浏览 11
已结题

ffmpeg如何把一个文件夹里的图片4张4张选取转化视频

如题,如何把一个文件夹里面的图片循环选取4张,4张的转化为视频

  • 写回答

3条回答 默认 最新

  • 放天狼 2024-09-04 11:43
    关注

    做过类似的项目,用python调用ffmpeg实现,总体思路是
    1.随机取四张图片

    def get_random_images(directory):
        """
        获取目录下的所有图片文件名
        :param directory: 
        :return: 
        """
        files = [os.path.join(directory, f) for f in os.listdir(directory) if
                 f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]
    
        # 如果文件夹中有图片,随机选择最多4张图片
        if files:
            selected_images = random.sample(files, min(len(files), 4))
        else:
            selected_images = []  # 如果没有图片,返回空列表
    
        return selected_images
    
    

    2.图片转视频,需要把每一张图片转成固定秒数的视频

    def image_single_to_video(input_file, output_path, ext='.mp4'):
        ffmpeg_command = [
            'ffmpeg',
            '-f', 'image2',
            '-framerate', '0.2',
            '-i', input_file,
            '-s', '720x1080',
            '-r', '25',
            '-y',
            output_path + ext
        ]
    
        return ffmpeg_command
    

    3、合成两个视频转场

    def video_add_gallery(input1, input2, output_path, offset, ext='.mp4'):
        gallery_list = [
            'fadeblack',
            'hlslice',
            'dissolve',
            'radial',
            'vuwind',
            'wipebl',
            'coverright',
            'revealup',
        ]
        gallery = random.choice(gallery_list)
        ffmpeg_command = [
            'ffmpeg',
            '-i', input1,
            '-i', input2,
            '-loglevel', 'warning',
            '-filter_complex', f'xfade=transition={gallery}:duration=1:offset={offset}',
            '-y',
            output_path + ext
        ]
    
        return ffmpeg_command
    

    总体是这样,其他自己拼接完善吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月16日
  • 已采纳回答 9月8日
  • 创建了问题 8月6日

悬赏问题

  • ¥15 angular有偿编写,
  • ¥15 VB.NET使用保存对话框保存图片?
  • ¥15 centos7系统下abinit安装时make出错
  • ¥15 hbuildex运行微信小程序报错
  • ¥15 关于#python#的问题:我知道这个问题对你们来说肯定so easy
  • ¥15 wpf datagrid如何实现多层表头
  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错