视频行为分析——视频图像转换与ffmpeg相关操作

这篇具有很好参考价值的文章主要介绍了视频行为分析——视频图像转换与ffmpeg相关操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

工具类说明

1. 图像视频转换

1.1 视频输出gif
from moviepy.editor import VideoFileClip
# 设置输入视频文件路径和输出GIF文件路径
input_video = 'video.avi'
output_gif = 'output.gif'
# 读取视频文件
video = VideoFileClip(input_video)
# 将视频保存为GIF文件
video.write_gif(output_gif)
1.2 将文件夹下图片转视频
import cv2
import os
def images2video(    input_folder = 'demo',    output_file = 'video.avi'):
      # 获取图像文件的列表
    image_files = os.listdir(input_folder)

    # 将图像文件名列表按照数字排序
    image_files.sort(key=lambda x: int(x.split('.')[0]))

    # 获取图像文件的数量
    num_frames = len(image_files)

    # 创建一个空的视频流
    fourcc = cv2.VideoWriter_fourcc(*'XVID')  # 设置视频编解码器
    out = cv2.VideoWriter(output_file, fourcc, 30.0, (640, 480))

    # 逐个读取并写入每个图像帧
    for i, image_file in enumerate(image_files):
        frame = cv2.imread(os.path.join(input_folder, image_file))
        if frame is None:
            print(f"Error reading frame {i}: {image_file}")
            continue
        frame = cv2.resize(frame, (640, 480))  # 可以根据需要调整帧大小
        out.write(frame)
        if i % 100 == 0:  # 每100帧输出一次进度信息
            print(f"Processed {i + 1}/{num_frames} frames")
        # 完成视频写入并释放资源
    out.release()

2. ffmpeg视频音频剪辑

2.1 ffmpeg安装

FFmpeg 的官方网站(https://ffmpeg.org/)上找到更详细的安装文档和指南。

2.1.1 linux 安装
  • 编译安装:如果你需要更新或自定义的 FFmpeg 版本,你可以从源代码编译安装。你可以从 FFmpeg 的官方网站下载源代码,并按照官方提供的编译指南进行安装。
  • 使用包管理器安装:大多数 Linux 发行版的软件仓库中都包含 FFmpeg。你可以使用包管理器(如apt、yum、dnf等)来安装。例如,在 Ubuntu 上,可以运行以下命令:
     sudo apt-get install ffmpeg
2.1.2 windows 安装
  • 预编译二进制文件:你可以从 FFmpeg 的官方网站下载预编译的 Windows 版本。官方提供了静态和共享库版本的二进制文件,你可以根据需要选择适合的版本。
  • 第三方安装程序:也有一些第三方安装程序(如Gyan Dev和BtbN)提供了 Windows 版本的 FFmpeg,你可以从它们的网站下载并按照说明进行安装。
  • 备注:需要将bin目录下设置到windows环境变量
2.1.3 macos 安装
  • Homebrew:如果你使用 Homebrew 包管理器,可以使用以下命令安装 FFmpeg

     brew install ffmpeg
    
  • MacPorts:如果你使用 MacPorts 包管理器,可以使用以下命令安装 FFmpeg

     sudo port install ffmpeg
    
  • 手动编译:你也可以从 FFmpeg 的官方网站下载源代码,并按照官方提供的编译指南进行手动编译安装。

2.2 常用命令

FFmpeg 是一个功能强大的多媒体处理工具,提供了许多常用的命令来处理音频和视频文件。以下是一些常用的 FFmpeg 命令示例:文章来源地址https://www.toymoban.com/news/detail-681316.html

2.2.1 转换视频格式
ffmpeg -i input.mp4 output.avi
2.2.2 转换音频格式
ffmpeg -i input.mp3 output.wav
2.2.3 调整视频分辨率
ffmpeg -i input.mp4 -s 1280x720 output.mp4
2.2.4 调整视频帧率
ffmpeg -i input.mp4 -r 30 output.mp4
2.2.5 裁剪视频
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 output.mp4
2.2.6 提取音频
ffmpeg -i input.mp4 -vn output.mp3
2.2.7 合并视频和音频
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a copy output.mp4
2.2.8 添加水印
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4	
2.2.9 转换视频编码
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
2.2.10 转换音频编码
ffmpeg -i input.mp3 -c:a libopus output.opus

2.3 实用工具

2.3.1 按照帧裁剪视频

'''
使用 setpts=PTS-STARTPTS 可以将视频的第一帧的时间戳设置为0,这样后续帧的时间戳就是相对于第一帧的时间差。这在一些需要对视频进行时间戳调整的场景中非常有用,例如剪辑视频或重新排序视频帧。
'''

def ffmpeg_cut_video_by_frames(input_file, output_file, start_frame, end_frame):
    # 构建 FFmpeg 命令
      # 示例用法
    '''
    input_file = 'demo.mp4'  # 输入视频文件路径
    output_file = 'output2.mp4'  # 输出视频文件路径
    start_frame = 25  # 起始帧数
    end_frame = 120  # 结束帧数
    '''
    command = [
        'ffmpeg',
        '-i', input_file,
        '-vf', f'select=between(n\,{start_frame}\,{end_frame}),setpts=PTS-STARTPTS',
        output_file,
    ]
    if os.path.exists(output_file):
        os.remove(output_file)
    # 执行 FFmpeg 命令
    flag = subprocess.run(command)
    return flag


if __name__ == '__main__':
    # 示例用法
    input_file = 'demo.mp4'  # 输入视频文件路径
    output_file = 'output2.mp4'  # 输出视频文件路径
    start_frame = 25  # 起始帧数
    end_frame = 120  # 结束帧数

    ffmpeg_cut_video_by_frames(input_file, output_file, start_frame, end_frame)

到了这里,关于视频行为分析——视频图像转换与ffmpeg相关操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用户行为分析zhi应用分析模型

    (1)基于AARRR漏斗模型分析用户行为 本文通过常用的电商数据分析指标,采用AARRR漏斗模型拆解用户进入APP后的每一步行为。AARRR模型是根据用户使用产品全流程的不同阶段进行划分的,针对每一环节的用户流失情况分析出不同环节的优化优先级 AARRR漏斗模型 (2)基于RFM模型

    2023年04月08日
    浏览(78)
  • 考生作弊行为分析算法

    考生作弊行为分析系统利用python+yolo系列网络模型算法框架,考生作弊行为分析算法利用图像处理和智能算法对考生的行为进行分析和识别,经过算法服务器的复杂计算和逻辑判断,算法将根据考生行为的特征和规律,判定是否存在作弊行为。Yolo模型采用预定义预测区域的方

    2024年02月10日
    浏览(30)
  • AI行为分析预警系统 opencv

    AI行为分析预警系统通过python+opencv网络模型Ai视觉智能分析技术,AI行为分析预警系统可以对实际场景下如车间、电力场景、化工场景、工业生产场景下的人员作业操作行为规范进行有针对性的定制开发,根据每个项目的不同的识别预警需求。OpenCV可以在不同的系统平台上使用

    2024年02月02日
    浏览(44)
  • Spark项目实战—电商用户行为分析

    我们看看在实际的工作中如何使用这些 API 实现具体的需求。这些需求是电商网站的真实需求,所以在实现功能前,咱们必须先将数据准备好。 上面的数据图是从数据文件中截取的一部分内容,表示为电商网站的用户行为数据,主要 包含用户的 4 种行为:搜索,点击,下单,

    2024年02月08日
    浏览(45)
  • 数仓用户行为数据分析

    分层优点:复杂的东西可以简单化、解耦(屏蔽层作用)、提高复用、方便管理 SA 贴源  数据组织结构与源系统保持一致 shm 历史层  针对不同特征的数据做不同算法,目的都是为了得到一份完整的数据 PDM 明细层 做最细粒度的数据明细,最高扩展性和灵活性,企业级的数据

    2024年02月08日
    浏览(42)
  • java校园行为分析预警管理系统

    目  录 摘  要    II ABSTRACT    III 第一章 绪论    1 1.1研究背景    1 1.2选题目的    1 1.3本文研究内容    2 第二章  开发技术介绍    3 2.1开发工具介绍    3 2.2 JAVA技术介绍    3 2.3 MYSQL数据库介绍    4 第三章  系统需求分析    6 3.1可行性分析    6 3.1.1技术可

    2023年04月08日
    浏览(52)
  • 大数据课程综合实验案例:网站用户行为分析

    大数据课程实验案例:网站用户行为分析,由厦门大学数据库实验室团队开发,旨在满足全国高校大数据教学对实验案例的迫切需求。本案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、HBase、Hive、Sqoop、R、Ec

    2024年02月06日
    浏览(124)
  • GSEQ行为序列分析软件学习汇总

    1、GSEQ软件是做什么的? 2、GSEQ软件如何使用? 2、GSEQ软件前期需要在“记事本”中编写“程式码”需要将所有行为数据编码之后,将编码行为序列粘贴到GSEQ软件中去,如果数据量很大,这个过程就非常繁杂了,是否可以简化这个数据处理流程? GSEQ是一款交互序列分析软件

    2024年01月25日
    浏览(42)
  • 大数据实战 --- 淘宝用户行为数据分析

    目录 开发环境  数据描述 功能需求 数据准备 数据清洗 用户行为分析 找出有价值的用户 Hadoop+Hive+Spark+HBase 启动Hadoop :start-all.sh 启动zookeeper :zkServer.sh start 启动Hive : nohup hiveserver2 1/dev/null 21 beeline -u jdbc:hive2://192.168.152.192:10000 启动Hbase : start-hbase.sh hbase shell 启动Spark :s

    2023年04月22日
    浏览(66)
  • 大数据期末课程设计实验案例:网站用户行为分析

    大数据课程实验案例:网站用户行为分析 案例目的 1.熟悉Linux系统、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用; 2.了解大数据处理的基本流程; 3.熟悉数据预处理方法; 4.熟悉在不同类型数据库之间进行数据相互导入导出; 5.熟悉使用R语言进行可视化

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包