Python爬取視頻時長場景實踐示例

    目錄

    簡介:

    在視頻相關測試場景下,例如:有時需要知道全部視頻得匯總時長,顯然一個個打開并且手工計算耗時耗力,我們可以通過編寫進行快速匯總。

    獲取視頻時長得方式

    1、通過subprocess進行獲取。

    2、通過moviepy庫中VideoFileClip獲取。

    3、通過cv2庫獲取。

    安裝

    1、subprocess:無需安裝,Python內(nèi)置。

    2、moviepy:pip install moviepy。

    3、cv2:pip install opencv-python

    準備工序:

    1、當前項目新增videos目錄。

    2、you-get 下載幾個視頻。python:超實用下載工具you-get

    如:下載了兩個短視頻

    獲取視頻時長得3種方式對比

    import cv2import timeimport subprocessfrom moviepy.editor import VideoFileClipdef video_duration_1(filename):    start = time.time()    result = subprocess.run(["ffprobe", "-v", "error", "-show_entries",                             "format=duration", "-of",                             "default=noprint_wrappers=1:nokey=1", filename],                            stdout=subprocess.PIPE,                            stderr=subprocess.STDOUT)    end = time.time()    spend = end - start    print("獲取視頻時長方法1耗時:", spend)    return float(result.stdout)def video_duration_2(filename):    start = time.time()    clip = VideoFileClip(filename)    end = time.time()    spend = end - start    print("獲取視頻時長方法2耗時:", spend)    return float(clip.duration)def video_duration_3(filename):    start = time.time()    cap = cv2.VideoCapture(filename)    if cap.isOpened():        rate = cap.get(5)        frame_num = cap.get(7)        duration = frame_num / rate        end = time.time()        spend = end - start        print("獲取視頻時長方法3耗時:", spend)        return duration    return -1if __name__ == '__main__':    file = r".videosmda-mkbhvebqej3cw9yh.mp4"    video_time_1 = video_duration_1(file)    print(video_time_1)    print("*" * 100)    video_time_2 = video_duration_2(file)    print(video_time_2)    print("*" * 100)    video_time_3 = video_duration_3(file)    print(video_time_3)

    執(zhí)行源碼:

    結論:

    1、三種方式均可以正常獲取視頻時長,并且準確。

    2、推薦使用cv2獲取視頻時長,耗時最短。

    實踐案例:獲取文件夾內(nèi)全部視頻總時長

    import cv2import osdef video_duration(dir_name):    sum_duration = 0    for root, dirs, files in os.walk(dir_name, topdown=False):        for filename in files:            cap = cv2.VideoCapture(dir_name + "\" + filename)            if cap.isOpened():                rate = cap.get(5)                frame_num = cap.get(7)                duration = frame_num / rate                sum_duration += duration    return sum_durationif __name__ == '__main__':    file = r".videos"    total_video_time = video_duration(file)    print(f"{file} 目錄下全部視頻總時長為:{total_video_time}秒")

    以上就是Python獲取視頻時長場景實踐示例得詳細內(nèi)容,更多關于Python獲取視頻時長得資料請關注之家其它相關內(nèi)容!

    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結果,不保證100%準確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權益,可聯(lián)系我們進行處理。
    發(fā)表評論
    更多 網(wǎng)友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 亚洲av永久无码一区二区三区| 狠狠做深爱婷婷综合一区| 久久精品国产一区二区三区| 久久久无码一区二区三区| 美女视频黄a视频全免费网站一区| 亚洲国产精品无码久久一区二区| 美女视频免费看一区二区| 另类ts人妖一区二区三区| 亚洲色精品VR一区区三区| 少妇无码一区二区三区| 精品国产一区二区三区免费 | 久久国产精品无码一区二区三区 | 国产精品视频免费一区二区| 无码人妻久久一区二区三区免费| 中文字幕日本精品一区二区三区| 无码精品久久一区二区三区| 国内精品一区二区三区最新| 无码少妇一区二区浪潮免费| 中文字幕乱码一区久久麻豆樱花| 亚洲福利电影一区二区?| 无码精品黑人一区二区三区| 久久精品一区二区东京热| 高清一区二区三区日本久| 国产精品视频一区二区噜噜| 亚洲无删减国产精品一区| 亚洲国产一区二区三区青草影视| 秋霞午夜一区二区| 日韩免费无码视频一区二区三区| 无码aⅴ精品一区二区三区浪潮| 亚洲图片一区二区| 日韩中文字幕一区| 日韩美女视频一区| 亚洲免费视频一区二区三区 | 无码人妻精品一区二区三区久久久| 无码精品一区二区三区免费视频| 男女久久久国产一区二区三区| 精品无码国产一区二区三区AV| 无码日韩精品一区二区三区免费| 国产精品制服丝袜一区| 天美传媒一区二区三区| 一区二区三区中文|