前言

最近有一批视频数据待处理,将视频中有表情部分得视频片段提取出来,
由于视频并不是连续的,人工处理起来非常耗费时间,经过一番研究,终于实现了功能。

环境准备

确保自己本地计算机安装好了 FFMPEG

数据准备

因为需要记录有表情的视频起止时间,所以在最开始的时候采用Excel表记录相关数据信息。
表结构如下:

视频数据:

源代码

"""
利用 FFMPEG 提取指定时间视频片段
"""import os
import xlrd
import subprocess# 初始化 excel 文件
xl = xlrd.open_workbook(r'/home/dell/docs/videos_data.xlsx')# 读取 sheet1 工作表
table = table = xl.sheets()[0]# 检查文件目录是否存在,不存在则创建
def check_path(filepath):if not os.path.exists(filepath):os.mkdir(filepath)# 检查文件目录是否存在,不存在则递归创建文件夹
def check_paths(filepaths):if not os.path.exists(filepaths):os.makedirs(filepaths)# 视频公共输入路径
common_input_path = "/home/dell/trian_videos/origin_videos/"# 保存输出视频文件路径
common_out_path = '/home/dell/out_videos/origin_videos_data/'
check_path(common_out_path)def read_table_data(table):for i in range(1, int(table.nrows)):print("读取 table 数据中 .....\n")# 读取表中视频数据文件名+后缀 .aviorigin_video_path = table.cell(i, 1).valueorigin_video_name_list = origin_video_path.split(".")# 获取视频文件名input_videos_name = origin_video_name_list[0]# 输出文件路径output_path = common_out_pathcheck_paths(output_path)# print(output_path)# 读取数据表中的起止时间start_time = str(table.cell(i, 2).value)  # 转成字符串格式end_time = str(table.cell(i, 3).value)"""ffmpef的安装路径  建议使用绝对路径 windows下:  D://ffmpeg//ffmpeg-4.2.1-win64-static//bin//ffmpeg.exe"""ffmpegCmd = "/usr/bin/ffmpeg"# 输出的文件路径及名字  包含 avi的后缀output_videos_name = common_out_path + input_videos_name + "_" + str(i) + ".avi"# 输入视频的绝对路径 origin_video_name = common_input_path + origin_video_path# /usr/bin/ffmpeg -i /home/dell/trian_videos/origin_videos/190228-B4-16.avi -ss 00:00:02 -to 00:00:10 -c copy /home/dell/out_videos/190228-B4-16_1.avicmd = ffmpegCmd + " -i " + origin_video_name + " -ss " + start_time + " -to " + end_time + " -c copy " + output_videos_name# 执行 cmd 命令subprocess.call(cmd, shell=True)# print("cmd -------------> " + cmd)if __name__ == "__main__":read_table_data(table)

ffmpeg 命令:

ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output1.mp4
注:代码中间的时间是字符串,务必保证是字符串,否则会报错。

运行结果

控制台有一些输出信息,如果不报错,无视。

到此,就完成了批量提取指定时间视频片段的功能,分享给大家,希望能帮助到你们。
如果有用,请记得点赞,谢谢。

利用 FFMPEG 批量提取指定起止时间视频片段相关推荐

  1. java批量提取文件夹名称_bat 批量提取指定目录下的文件名

    bat 批量提取指定目录下的文件名 下面是批量获取指定目录下的文件名的核心代码 @echo off echo text input set input= set /p input=: echo %in ...

  2. excel怎么批量提取指定网站内容-免费指定网站提取导出excel软件

    excel怎么批量提取指定网站内容?Excel是人们经常使用的一种办公软件,掌握正确的使用方法和技巧是很有用的Excel是Microsoft为使用Windows和Apple Macintosh操作系统 ...

  3. python实现批量提取指定文件夹下同类型文件

    python实现批量提取指定文件夹下同类型文件 讲解 略 代码 import os import shutildef take_samefile(or_path, tar_path, tar_type ...

  4. python实现动态壁纸_利用Python批量提取Win10锁屏壁纸实战教程

    前言 相信使用Win10的朋友会发现,每次开机锁屏界面都会有不一样的漂亮图片,这些图片通常选自优秀的摄影作品,十分精美. 但是由于系统会自动更换这些图片,所以就算再好看的图片,也许下次开机之后就被替换 ...

  5. 如何利用excel批量提取域名IP地址?

    今天跟大家分享一下如何利用excel批量提取域名IP地址? 1.首先我们打开Excel软件,录入要查询的域名并选中数据单元格区域 2.接着我们点击[DIY工具箱] 3.点击[更多]选择[查询域名的IP ...

  6. FFmpeg批量提取视频的某一帧作为封面

    命令是这样的: ffmpeg -i input.flv -ss 00:00:02 -frames:v 1 out.png 说明: -i input.flv 截取的视频的名字 -ss 00:00:02 ...

  7. 从FASTA文件中批量提取指定序列【Python脚本】

    文章目录 前言 一:读取含特定字符的序列并输出 演示 二:读到某一个字符之前的全部输出 使用方法 三:输出前n条序列 使用方法 总结 前言 背景:学测序流程的时候,做到mapping的时牛的基因组有两 ...

  8. 从勘界图批量提取宗地红线到shapefile工具,从CAD图中批量提取指定类型图形到shp数据实现方法。

    在实际工作中可能会遇到需要从勘界图dwg中提红线的工作,当面对成百上千的勘界图时,人工逐一提取将非常繁琐耗时.下面介绍一个利用FME从勘界图批量提取宗地红线的方法. 关注薇信工众号:"GIS ...

  9. bat 批量提取指定目录下的文件

    如下是批量获取指定目录下的文件名. @echo off echo text inputset input= set /p input=: echo %input% is input cd %input ...

最新文章

  1. Typescript + TSLint + webpack 搭建 Typescript 的开发环境
  2. Condition_number
  3. 综述 | 知识图谱发展概述
  4. 她说:我希望你好好写代码
  5. 百度人脸识别 人脸识别模型_当我说人脸识别很容易时,他们笑了。 但是可以。...
  6. 游戏大魔王少不了王者荣耀壁纸图片
  7. WPF:DataGrid可过滤、多语言
  8. Module not found: Error: Can't resolve 'XXX' in 'XXXX'
  9. UE4 android开发
  10. linux wine qq2017,20170506-linux下最新WineQQ8.9.1安装教程
  11. 斗智斗勇 -- 谷歌浏览器的主页被篡改
  12. 网易云信服务监控平台实践
  13. 微信公众平台针对欺诈等违规行为处理结果公示
  14. win 10 输入法自定义切换快捷键(rime)
  15. ffmpeg学习笔记之创建音频解码器失败 avcodec_open2() 返回值为-22
  16. 随手科技累计用户超3亿 领跑互金App
  17. 以编程方式使用 Word 中的内置对话框
  18. OO过时了吗?软件危机还有吗?
  19. BLDC电机FOC控制技术学习笔记
  20. OpenGL入门(一)

热门文章

  1. 【工具】Vscode翻译插件推荐(不用谷歌翻译api、支持短句英汉互译、支持查词、支持自动补全、不需要浏览器)
  2. ubuntu进行MNN编译
  3. STM32驱动直流电机(一)驱动电路的介绍
  4. jquery append()方法与html()方法用法区别
  5. 关于软件功能点评估的问题(一)
  6. 数控加工仿真系统 - FANUC OI 铣床编程笔记(上)
  7. 计量经济学笔记5-Eviews操作-异方差的检验与消除(White检验与加权最小二乘)
  8. Android触摸事件进行画图简单实现
  9. 灵性图书馆:好书推荐-《把好运吸过来》
  10. CodeSys轴控指令使用方法