当前位置: 首页 > article >正文

OpenCV下的视频和帧图片转换(Video2FrameFrame2Video, VideoCaptureVideoWriter)

OpenCV下的视频和帧图片转换(Video2Frame&Frame2Video, VideoCaptur e&VideoWriter)

文章目录

  • 1. 杂话
  • 2. 视频转图片(Video2Frame, VideoCapture)
    • 2.1 先看代码
  • 3. 图片转视频(Frame2Video, VideoWriter)
    • 3.1 先看代码
    • 3.2 看看参数解释

1. 杂话

 这就很直观了嘛,就是如何通过opencv来进行视频和帧图片的转换,就。。。没啥好说的吧。直接看代码:

2. 视频转图片(Video2Frame, VideoCapture)

2.1 先看代码

import os
import cv2

def video_to_frames(video_path, frames_dir):
	cap = cv2.VideoCapture(video_path)
	frame_count = 0
	while True:
		ret, frame = cap.read()
		if not ret:
			break
		frame_filename = os.path.join(frames_dir, \
		f"{frame_count:04d}.jpg")
		cv2.imwrite(frame_filename, frame)
		frame_count += 1
		
	cap.release()

3. 图片转视频(Frame2Video, VideoWriter)

3.1 先看代码

import os
import cv2

def frame_to_video(frame_folder, video_name, fps):
	frames = [frame for frame in os.listdir(frame_folder) \
	if frame.endswith(".jpg")]
	frames.sort(key = lambda x : int(os.path.splitext(x)[0]))
	
	frame_0 = cv2.imread(os.path.join(frame_folder, frames[0]))
	height, width, layers = frame_0.shape
	
	fourcc = cv2.VideoWriter_fourcc(*'mp4v')
	video = cv2.VideoWriter(video_name, fourcc, fps, \
	(width, height))
	
	for frame in frames:
		video.write(cv2.imread(os.path.\
		join(frame_folder, frame)))
	
	video.release()

3.2 看看参数解释

 FOURCC 是 “Four-Character Code” 的缩写,用于指定视频流的编码格式。在 OpenCV 中使用 cv2.VideoWriter_fourcc 来创建 FOURCC 编码器标识符。不同的 FOURCC 值对应不同的视频编码格式,以下是一些常见的 FOURCC 值及其对应的视频文件类型:

  • XVID
    文件类型: .avi
    描述: Xvid MPEG-4 编码器,广泛用于 AVI 文件格式。
  • MP4V
    文件类型: .mp4
    描述: MPEG-4 视频编码器,适用于生成 MP4 文件。推荐使用现代格式。
  • MJPG
    文件类型: .avi
    描述: Motion JPEG 编码器,使用逐帧压缩的方式保存视频。每一帧都是一张 JPEG 图像。
  • X264
    文件类型: .mp4
    描述: H.264 编码器,提供高压缩率和优良的画质,适合生成 MP4 文件。
  • DIVX
    文件类型: .avi
    描述: DivX 编码器,早期常用于网络视频流媒体。
  • H264
    文件类型: .mp4
    描述: H.264 编码器,与 X264 类似,但更多用于硬件加速编码。
  • WMV1
    文件类型: .wmv
    描述: Windows Media Video 编码器,通常用于 WMV 文件。
  • AVC1
    文件类型: .mp4
    描述: H.264/MPEG-4 AVC 编码器,常用于高清内容,适合 MP4 文件。
  • I420
    文件类型: .avi
    描述: YUV 4:2:0 编码,通常用于未压缩的原始视频流。
  • PIM1
    文件类型: .mpeg
    描述: MPEG-1 视频编码器,适用于早期的 MPEG 视频文件。

 OK,基本符合预期哦~


http://www.kler.cn/news/289398.html

相关文章:

  • 游戏翻译中西班牙语的特点
  • Kafka【四】Controller的选举机制
  • Storm计算框架
  • 结构体的使用
  • C#串口助手初级入门
  • Oracle 19C管理控制文件
  • 达梦SQL 优化简介
  • 巨魔商店2.1正式更新,最高支持iOS17.6.1
  • c++(list)
  • flink窗口分组数据错乱
  • Spring源码之refresh
  • 常用性能参数检查方法图示
  • Unity ScriptableObject持久化操作
  • 装饰器模式及应用【理论+代码】
  • 弱通联条件下的人机混合控制
  • 蓝桥杯备赛day02:递推
  • 【Linux操作系统】:Linux生产者消费者模型
  • 数据分析-MAC 编程环境安装教程
  • 淘客APP的前后端分离架构设计
  • 学习记录——day42 多态
  • 算法图解(2)
  • 【Day08】
  • weak_ptr是否有计数方式,在哪分配的空间。
  • MacBook Pro M3 安装 Node.js v14 的兼容性
  • 进阶SpringBoot之 Shiro(6)整合 Thymeleaf
  • 【word导出带图片】使用docxtemplater导出word,通知书形式的word
  • 0基础学习爬虫系列:Python环境搭建
  • Anaconda的环境管理操作命令详解-学习篇
  • mysql创建数据库和表
  • list的简单实现