用Python做FFmpeg批处理之:指定帧率放慢/加快视频。

前言

我最近要训练视频插帧模型,需要240fps的原视频,网上唯一找到的这样的数据集只有Adobe240fps(DeepVideoDeblurring/DeepVideoDeblurring_Dataset_Original_High_FPS_Videos),这里面也就几十个视频,加起来也没多长,我觉得不够泛化,就决定自己拍摄,我手里的是iPhone X,由于训练模型不需要特别高分辨率的元数据,系统又取消了720p@240fps的拍摄模式,只好借助第三方软件,ProMovie。由于是手持拍摄,我想后期做一个防抖,大多数做视频防抖的软件都在Windows下,我不想在Mac上折腾了。Pr实在用不惯,FCP不支持60fps以上的视频,我只能把原视频放到30fps,才能用FCP处理,下面就是我的代码

正文

几十个视频文件,一个个搞肯定不可能的,好在有Python可以做批处理。下面是我的代码:

import os
path = 'input'  # 我的原视频在项目里的input文件夹里。
files = os.listdir(path)
if '.DS_Store' in files:
    files.remove('.DS_Store')  # macOS会在文件夹里存一个.DS_Store……
files.sort()
print(files)
for file in files:
    input_dir = f'{path}/{file}'
    output_dir = 'output' + file  # 输出文件放在项目里output文件夹里。
    os.system(f'ffmpeg -loglevel panic -i {input_dir} -f rawvideo -pix_fmt yuv420p -vcodec rawvideo -s 1280x720 -y temp.raw')
    # -loglevel panic:基本无输出日志,控制台看起来清爽;-f rawvideo:输出raw格式原视频;-pix_fmt yuv420p:像素格式yuv420p,其实我也不是很清楚,关于yuv420p我知道的是要在QuickTime或iOS的相册内播放必须设置这个;-s 1280x720:必须设置这个,可能raw里面包含信息太少必须告诉它分辨率多少吧。
    os.system(f'ffmpeg -loglevel panic -f rawvideo -pix_fmt yuv420p -r 30 -s 1280x720 -i temp.raw -y {output_dir}')
    print(file)
os.remove('temp.raw')

ref:

https://blog.csdn.net/wangzhebupt/article/details/51133823?utm_source=blogxgwz7

https://blog.csdn.net/yu540135101/article/details/84311244

猜你喜欢

转载自blog.csdn.net/iBobbyTS/article/details/107570256
今日推荐