如题,如何把一个文件夹里面的图片循环选取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
总体是这样,其他自己拼接完善吧
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥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内存报错