本来打算要在something-something v2跑一下Slowfast的代码的,所以下载了something-something v2(然而那个代码我detectron2安装失败了,打算换成mmaction2在ucf101上跑一下slowfast,但是以后总会用到这个数据集的,所以还是将该数据集提取了帧)
提取帧的代码参考了Slowfast给的那行代码,同时也参考了以下两个博客,
The 20BN-something-something Dataset V2 SlowFas Trainning
使用ffmpeg从视频中截取图像帧(最简单实用的视频抽帧,一句命令)
我的代码如下:
videos_root=./20bn-something-something-v2 #视频路径和保存路径,自己改一改
save_root=./extracted_frames/
for video in $videos_root/*;
do
echo $video
save_dir=$save_root$(basename $video .webm)
if [ ! -d $save_dir ];then
mkdir $save_dir
fi
ffmpeg -i "${video}" -r 30 -q:v 1 "$save_dir/$video_%06d.jpg" #30是FPS
done
可能会有像我一样的小白不知道这个代码要怎么用,解释一下:
这行代码是shell脚本,需要在终端先创建一个脚本:
vim extract.sh
此时进入到编辑界面,按s进入插入模式,esc退出插入模式,:wq保存文件并退出
因为在终端上打代码不方便,我是随便输了两个代码然后用:wq保存了该文件,然后在文件管理器找到该文件,右键用文本编辑器打开,编辑起来就舒服多了
写好代码之后保存,在终端上为该文件添加可执行权限:
chmod +x ./extract.sh
然后执行:
bash extract.sh
注意:
1.执行之前要谨慎,该过程十分漫长,我是从11.29 大约17点开始的,12.1 3点多提取完的…
2.确保硬盘空间足够,我提取出来的大小是383g,占用空间431g。。。