一、ffmpeg
工具的下载与安装
- 第一步:下载ffmpeg,下载地址在这里,提取码:eo4k ;
- 将下载的文件放入
D:
盘下;
- 将该路径
D:\ffmpeg\bin
添加到系统变量中; - 在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