返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现获取视频时长功能
  • 428
分享到

Python实现获取视频时长功能

2024-04-02 19:04:59 428人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录前言环境依赖代码验证一下补充前言 本文提供获取视频时长的python代码,精确到毫秒,一如既往的实用主义。 环境依赖  FFmpeg环境安装,可以参考:windows ffmpe

前言

本文提供获取视频时长的python代码,精确到毫秒,一如既往的实用主义。

环境依赖

 FFmpeg环境安装,可以参考:windows ffmpeg安装部署

本文主要使用到的不是ffmpeg,而是ffprobe也在上面这篇文章中的zip包中。

代码

不废话,上代码。


#!/user/bin/env Python
# coding=utf-8
"""
@project : csdn
@author  : 剑客阿良_ALiang
@file   : get_video_duration.py
@ide    : PyCharm
@time   : 2021-12-23 13:52:33
"""
 
import os
import subprocess
 
 
def get_video_duration(video_path: str):
    ext = os.path.splitext(video_path)[-1]
    if ext != '.mp4' and ext != '.avi' and ext != '.flv':
        raise Exception('fORMat not support')
    ffprobe_cmd = 'ffprobe -i {} -show_entries format=duration -v quiet -of csv="p=0"'
    p = subprocess.Popen(
        ffprobe_cmd.format(video_path),
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        shell=True)
    out, err = p.communicate()
    print("subprocess 执行结果:out:{} err:{}".format(out, err))
    duration_info = float(str(out, 'utf-8').strip())
    return int(duration_info * 1000)
 
 
if __name__ == '__main__':
    print('视频的duration为:{}ms'.format(get_video_duration('D:/tmp/100.mp4')))

代码说明:

1、对视频的后缀格式做了简单的校验,如果需要调整可以自己调整一下。

2、对输出的结果做了处理,输出int类型的数据,方便使用。

验证一下

准备的视频如下:

验证一下

补充

Python实现获取视频fps


#!/user/bin/env python
# coding=utf-8
"""
@project : csdn
@author  : 剑客阿良_ALiang
@file   : get_video_fps.py
@ide    : PyCharm
@time   : 2021-12-23 11:21:07
"""
import os
import subprocess
 
 
def get_video_fps(video_path: str):
    ext = os.path.splitext(video_path)[-1]
    if ext != '.mp4' and ext != '.avi' and ext != '.flv':
        raise Exception('format not support')
    ffprobe_cmd = 'ffprobe -v error -select_streams v -of default=noprint_wrappers=1:nokey=1 -show_entries stream=r_frame_rate {}'
    p = subprocess.Popen(
        ffprobe_cmd.format(video_path),
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        shell=True)
    out, err = p.communicate()
    print("subprocess 执行结果:out:{} err:{}".format(out, err))
    fps_info = str(out, 'utf-8').strip()
    if fps_info:
        if fps_info.find("/") > 0:
            video_fps_str = fps_info.split('/', 1)
            fps_result = int(int(video_fps_str[0]) / int(video_fps_str[1]))
        else:
            fps_result = int(fps_info)
    else:
        raise Exception('get fps error')
    return fps_result
 
 
if __name__ == '__main__':
    print('视频的fps为:{}'.format(get_video_fps('D:/tmp/100.mp4')))

代码说明:

1、首先对视频格式做了简单的判断,这部分可以按照需求自行调整。

2、通过subprocess进行命令调用,获取命令返回的结果。注意范围的结果为字节串,需要调整格式处理。

验证一下

下面是准备的素材视频,fps为25,看一下执行的结果。

执行结果

到此这篇关于Python实现获取视频时长功能的文章就介绍到这了,更多相关Python获取视频时长内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python实现获取视频时长功能

本文链接: https://lsjlt.com/news/160725.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python实现获取视频时长功能
    目录前言环境依赖代码验证一下补充前言 本文提供获取视频时长的python代码,精确到毫秒,一如既往的实用主义。 环境依赖  ffmpeg环境安装,可以参考:windows ffmpe...
    99+
    2024-04-02
  • PHP获取M3U8视频时长
    m3u8 ⽂件实际上是⼀个播放文件索引地址,通过里面的参数可以找到相应的时长 EXTM3U:这个是M3U8文件必须包含的标签,并且必须在文件的第一行,所有的M3U8文件中必须包含这个标签。 EXT-X...
    99+
    2023-10-01
    php 音视频 开发语言 m3u8时长 视频时长
  • Python怎么获取视频文件的大小和时长
    这篇文章主要介绍“Python怎么获取视频文件的大小和时长”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么获取视频文件的大小和时长”文章能帮助大家解决问题。1. 前置知识这里一共需要用...
    99+
    2023-07-05
  • Java如何实现获取MP3音频时长
    这篇文章主要介绍Java如何实现获取MP3音频时长,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Maven依赖<dependency>      ...
    99+
    2023-06-25
  • Python爬取视频时长场景实践示例
    目录简介:获取视频时长的方式安装获取视频时长的3种方式对比简介: 在视频相关测试场景下,例如:有时需要知道全部视频的汇总时长,显然一个个打开并且手工计算耗时耗力,我们可以通过编写脚本...
    99+
    2024-04-02
  • Python实现视频下载功能
    最近一两年短视频业务风生水起,各个视频网站都有各自特色的短视频内容。如果有这样一个程序,可以把各大视频网站的热门用户最新发布的视频都下载下来,不仅方便自己观看,还可以将没有版权的视频发布在个人社交网站上,增...
    99+
    2022-06-04
    视频下载 功能 Python
  • 详解Python如何获取视频文件的大小和时长
    目录1. 前置知识2. 完整代码① 导入所有库② 获取指定目录下符合条件的文件③ 自定义时间转化函数④ 获取文件大小和时长⑤ 将得到的数据存储到Excel中前段时间,微信群有一个朋友...
    99+
    2023-05-13
    Python获取视频大小时长 Python获取视频大小 Python获取视频时长 Python 视频
  • 在vue项目中如何获取视频的时长
    目录vue获取视频时长vue-video-player获取播放时间全局引用局部引用htmlmethods获取播放时间vue获取视频时长 传入参数为视频文件对象 js的代码如下: ge...
    99+
    2024-04-02
  • 在vue项目中怎么获取视频的时长
    这篇文章主要讲解了“在vue项目中怎么获取视频的时长”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在vue项目中怎么获取视频的时长”吧!vue获取视频时长传入参数为视频文件对象js的代码如下...
    99+
    2023-06-29
  • java获取视频时长、分辨率、帧率、码率
    1、先导包 ws.schildjave-all-deps2.6.0 获取时长 @Test public void test01() { // 视频时长 long ti...
    99+
    2023-09-13
    java 音视频 jvm
  • SpringBoot+thymeleaf实现读取视频列表并播放视频功能
    目录效果实现过程后端程序示例前端程序示例通过读取数据库video表获取当前视频的视频名、视频地址,展示至前端页面videorecord.html,通过点击播放按钮获取数据id进而得到...
    99+
    2024-04-02
  • JAVA获取视频音频时长 文件大小 MultipartFileUtil和file转换
    java 获取视频时长_java获取视频时长_似夜晓星辰的博客-CSDN博客 ws.schild jave-all-deps 2.5.1 @Slf4...
    99+
    2023-10-08
    java python 开发语言
  • Python实现多个视频合成一个视频的功能
    目录前言环境依赖代码验证一下前言 本文提供将多个视频拼接为一个视频的Python工具代码,其中有一些限制条件,下面的代码说明会提到。 环境依赖 ffmpeg环境安装,可以参考:win...
    99+
    2024-04-02
  • Android实现实时视频聊天功能源码
    实现实时视频聊天功能的源码在Android平台上可以使用WebRTC技术。下面是一个简单的示例:1. 添加依赖项在项目的build....
    99+
    2023-09-13
    Android
  • SpringBoot+thymeleaf怎么实现读取视频列表并播放视频功能
    这篇文章主要介绍了SpringBoot+thymeleaf怎么实现读取视频列表并播放视频功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot+thymeleaf怎么实现读取视频列表并播放视频功...
    99+
    2023-06-30
  • uni-app实现微信小程序长按拍视频功能
    本文实例为大家分享了uni-app实现微信小程序长按拍视频功能的具体代码,供大家参考,具体内容如下 html <!-- 上传视频 -->      <view cl...
    99+
    2024-04-02
  • Python实现Youku视频批量下载功能
    前段时间由于收集视频数据的需要,自己捣鼓了一个YouKu视频批量下载的程序。东西虽然简单,但还挺实用的,拿出来分享给大家。   版本:Python2.7+BeautifulSoup3.2.1 impor...
    99+
    2022-06-04
    批量 功能 视频
  • vue实现视频上传功能
    本文实例为大家分享了vue实现视频上传功能的具体代码,供大家参考,具体内容如下 环境:vue + TS 上传视频 + 上传到阿里云 主要处理前端在vue下上传视频 使用的是阿里云的视...
    99+
    2024-04-02
  • Java轻松使用工具类实现获取MP3音频时长
    获取mp3格式音频时长。 Maven依赖 <dependency> <groupId>org</groupI...
    99+
    2024-04-02
  • Python+uiautomator2实现自动刷抖音视频功能
    工具准备 Python3.7.7 adb(Android debug bridge) uiautomatorviewer 安装adb 官网地址:https...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作