最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python3獲取視頻文件播放時(shí)長的三種方法

 更新時(shí)間:2024年04月19日 11:22:12   作者:小龍?jiān)谏綎|  
這篇文章主要介紹了python3獲取視頻文件播放時(shí)長的三種方法,VideoFileClip,CV2以及FFmpeg這三種方法,文章通過代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下

方法一:VideoFileClip

from moviepy.editor import VideoFileClip


def get_duration_from_moviepy(url):
    clip = VideoFileClip(url)
    return clip.duration

方法二:CV2

最快。

下載安裝:https://github.com/opencv/opencv/releases

pip install opencv-python
import cv2


def get_duration_from_cv2(filename):
  cap = cv2.VideoCapture(filename)
  if cap.isOpened():
    rate = cap.get(5)
    frame_num =cap.get(7)
    duration = frame_num/rate
    return duration
  return -1

方法三:FFmpeg

pip install ffmpy3
import ffmpy3


def get_duration_from_ffmpeg(url):
    tup_resp = ffmpy3.FFprobe(
        inputs={url: None},
        global_options=[
            '-v', 'quiet',
            '-print_format', 'json',
            '-show_format', '-show_streams'
        ]
    ).run(stdout=subprocess.PIPE)

    meta = json.loads(tup_resp[0].decode('utf-8'))
    return meta['format']['duration']

速度比較

import json
import subprocess
import time
import cv2
import ffmpy3
from moviepy.editor import VideoFileClip


ls = [
"https://test/1.mp4",
"http://test/2.mp4",
"https://test/3.mp4"
]


def get_duration_from_cv2(filename):
  cap = cv2.VideoCapture(filename)
  if cap.isOpened():
    rate = cap.get(5)
    frame_num =cap.get(7)
    duration = frame_num/rate
    return duration
  return -1


def get_duration_from_moviepy(url):
    clip = VideoFileClip(url)
    return clip.duration


def get_duration_from_ffmpeg(url):
    tup_resp = ffmpy3.FFprobe(
        inputs={url: None},
        global_options=[
            '-v', 'quiet',
            '-print_format', 'json',
            '-show_format', '-show_streams'
        ]
    ).run(stdout=subprocess.PIPE)

    meta = json.loads(tup_resp[0].decode('utf-8'))
    return meta['format']['duration']


for u in ls:
    t1 = time.time()
    p = get_duration_from_cv2(u)
    t2 = time.time()
    print('CV2 Duration: ', p, ' Time: ', t2 - t1)

    t1 = time.time()
    p = get_duration_from_moviepy(u)
    t2 = time.time()
    print('Moviepy Duration: ', p, ' Time: ', t2 - t1)

    t1 = time.time()
    p = get_duration_from_ffmpeg(u)
    t2 = time.time()
    print('FFMPEG Duration: ', p, ' Time: ', t2 - t1)
    print()

參考

https://ffmpy3.readthedocs.io/en/latest/

到此這篇關(guān)于python3獲取視頻文件播放時(shí)長的三種方法的文章就介紹到這了,更多相關(guān)python3獲取視頻播放時(shí)長內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python簡單實(shí)現(xiàn)計(jì)算過期時(shí)間的方法

    python簡單實(shí)現(xiàn)計(jì)算過期時(shí)間的方法

    這篇文章主要介紹了python簡單實(shí)現(xiàn)計(jì)算過期時(shí)間的方法,涉及Python時(shí)間操作的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • python 實(shí)用工具狀態(tài)機(jī)transitions

    python 實(shí)用工具狀態(tài)機(jī)transitions

    這篇文章主要介紹了python 實(shí)用工具狀態(tài)機(jī)transitions的使用,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • Pytorch 如何實(shí)現(xiàn)常用正則化

    Pytorch 如何實(shí)現(xiàn)常用正則化

    這篇文章主要介紹了Pytorch 實(shí)現(xiàn)常用正則化的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 通過Python的filestools庫給圖片添加全圖水印的示例詳解

    通過Python的filestools庫給圖片添加全圖水印的示例詳解

    這篇文章主要介紹了通過Python的filestools庫給圖片添加全圖水印,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Python實(shí)現(xiàn)自動(dòng)玩連連看的腳本分享

    Python實(shí)現(xiàn)自動(dòng)玩連連看的腳本分享

    最近女朋友在玩連連看,玩了一個(gè)星期了還沒通關(guān),真的是菜。實(shí)在是看不過去了,直接用python寫了個(gè)腳本代碼可以自動(dòng)玩連連看,感興趣的可以了解一下
    2022-04-04
  • Python 基礎(chǔ)教程之包和類的用法

    Python 基礎(chǔ)教程之包和類的用法

    這篇文章主要介紹了Python 基礎(chǔ)教程之包和類的用法的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • python如何與前端交互舉例詳解

    python如何與前端交互舉例詳解

    在Web開發(fā)中前端與后端之間的數(shù)據(jù)交互,下面這篇文章主要給大家介紹了關(guān)于python如何與前端交互的相關(guān)資料,文章通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • 部署Django到阿里云服務(wù)器教程示例

    部署Django到阿里云服務(wù)器教程示例

    這篇文章主要介紹了部署Django到阿里云服務(wù)器教程示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Django發(fā)送郵件和itsdangerous模塊的配合使用解析

    Django發(fā)送郵件和itsdangerous模塊的配合使用解析

    這篇文章主要介紹了Django發(fā)送郵件和itsdangerous模塊的配合使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 深入了解Python中的變量類型標(biāo)注

    深入了解Python中的變量類型標(biāo)注

    變量類型注解是用來對變量和函數(shù)的參數(shù)返回值類型做注解,讓調(diào)用方減少類型方面的錯(cuò)誤,也可以提高代碼的可讀性和易用性。本文就來和大家聊聊Python中的變量類型標(biāo)注吧
    2023-04-04

最新評論

南江县| 厦门市| 确山县| 昌都县| 平舆县| 霍州市| 宾川县| 始兴县| 莱西市| 沅江市| 开化县| 双江| 奉节县| 汉沽区| 金溪县| 平山县| 宿松县| 高雄市| 巴彦淖尔市| 南平市| 镇沅| 娄烦县| 沛县| 冕宁县| 阳曲县| 崇礼县| 增城市| 沅陵县| 濮阳县| 武功县| 泸定县| 平果县| 云霄县| 抚顺市| 利辛县| 盐边县| 江陵县| 临高县| 若尔盖县| 东乡| 华宁县|