FFmpeg实现视频与图片之间的转换

一、ffmpeg工具的下载与安装

  1. 第一步:下载ffmpeg,下载地址在这里,提取码:eo4k ;
  2. 将下载的文件放入D:盘下;
    在这里插入图片描述
  3. 将该路径D:\ffmpeg\bin添加到系统变量中;在这里插入图片描述
  4. 在dos界面输入ffmpeg,出现如下即为按照成功:
    在这里插入图片描述

二、视频转图片

比如我们要将下面的test_video.avi视频切成帧图,并存入output_pic文件夹中
在这里插入图片描述
ffmpeg的下载安装请各位道友自行补习,提一嘴,ffmpeg在视频图片处理中可谓是利器,不能不会啊)
如果ffmpeg已安装,那怎么用呢?在dos界面中直接使用下面语句就可以了

ffmpeg -i 视频地址 -r 视频帧率 图片地址/%04d.png -loglevel error

在这里插入图片描述

-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------

三、图片转视频

2.1:方法一:Python实现

江湖道义,先上代码:注意:帧图的文件名要统一,不然26行不能做到排序,就会报错

# -*- coding:utf-8 -*-
# -*- author:zzZ_CMing  CSDN address:https://blog.csdn.net/zzZ_CMing
# -*- 2018/12/06; 15:18
# -*- python3.6
"""
图片转视频
"""
import os
import cv2
import glob
import time

input_pic_path = 'input_pic/'    # 帧图存放位置


FPS = 25    # 生成视频的帧率
width_and_height = (1920, 1080)    # 图片的宽度、高度
output_video_name = "video_name.avi"

time_start = time.time()
#可以用(*'DVIX')或(*'X264'), 如果都不行先装ffmepg: sudo apt-get install ffmepg
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
videoWriter = cv2.VideoWriter(output_video_name, fourcc, FPS, width_and_height)

pic_name_all = os.listdir(input_pic_path)
pic_name_all.sort(key=lambda x:int(x[:-4]))
for pic_name in pic_name_all:
    img_name = input_pic_path + pic_name
    frame = cv2.imread(img_name)
    videoWriter.write(frame)
    print("%s/%s" % (pic_name_all.index(pic_name) + 1, len(pic_name_all)), img_name)
videoWriter.release()

print("cost_time=", time.time() - time_start)

-----------------------------------------------------------------------------------------------------------------------------------------

2.2:方法二:ffmpeg工具

ffmpeg工具不仅可以把帧图转为视频,还可以把原视频的声音也附上

ffmpeg -y -i 原视频地址 -r 原视频帧率 -i "帧图地址/%04d.png" -map 0:a? -map 1:v -r 生成视频帧率 -c:v libx264 -b:v 8M -pix_fmt yuv420p -c:a aac -strict -2 -b:a 192k -ar 48000 -strict -2 "生成视频地址/result.mp4" -loglevel error

猜你喜欢

转载自blog.csdn.net/zzZ_CMing/article/details/84855890
今日推荐