使用ffmpeg将连续视频帧图片转化为视频

使用ffmpeg将连续视频帧图片转化为视频

    先批量修改图片名字
#  按顺序修改图片的名字
#修改一个文件夹下所有图片的名字,修改成000000.jpg格式
import os
path = "/home/dlut/网络/make_database/数据集处理/JpGImages_img/"  #/home/dlut/网络/make_database/数据集处理/JpGImages_img
filelist = os.listdir(path)
filelist.sort()
count=1
for file in filelist:
    print(file)
for file in filelist:
    Olddir=os.path.join(path,file)
    if os.path.isdir(Olddir):
        continue
    filename=os.path.splitext(file)[0]
    filetype=os.path.splitext(file)[1]
    Newdir=os.path.join(path,str(count).zfill(6)+filetype)
    os.rename(Olddir,Newdir)
    count+=1

在合并视频

ffmpeg -f image2 -framerate 25 -i "D:/car/img1/%6d.jpg" -s 960*540 -y D:/car/test1.mp4

若报错

    Could find no file with path ‘img/frames_%05d.jpg’ and index in the range 0-4

这是因为ffmpeg默认图片编号是从0开始的。即如果找不到frames_00000.jpg,则报错。修改方式为

ffmpeg -start_number 345 -i img/frames_%05d.jpg -vcodec mpeg4 test.avi

指定开始读取的图片编号。 注意:ffmpeg读取的时候会顺序读取,若出现编号中断,视频会就此结束。

视频拆成图片

ffmpeg -i video.avi frames_%05d.jpg
经验分享 程序员 微信小程序 职场和发展