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

    目錄

    簡介:

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

    獲取視頻時長得方式

    1、通過subprocess進行獲取。

    2、通過moviepy庫中VideoFileClip獲取。

    3、通過cv2庫獲取。

    安裝

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

    2、moviepy:pip install moviepy。

    3、cv2:pip install opencv-python

    準備工序:

    1、當(dāng)前項目新增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í)行源碼:

    結(jié)論:

    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)容,更多關(guān)于Python獲取視頻時長得資料請關(guān)注之家其它相關(guān)內(nèi)容!

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

    返回頂部

    主站蜘蛛池模板: 中文人妻av高清一区二区| 日本在线视频一区| 亚洲国产成人精品无码一区二区 | 国产无线乱码一区二三区| 亚洲中文字幕无码一区二区三区| 中文字幕在线观看一区二区| 香蕉免费一区二区三区| 亚洲国产欧美国产综合一区| 视频在线一区二区| 2014AV天堂无码一区| 麻豆亚洲av熟女国产一区二| 九九无码人妻一区二区三区| 无码日韩人妻AV一区二区三区| 国产亚洲一区二区三区在线| 中文字幕AV无码一区二区三区| 无码日韩AV一区二区三区| 夜夜添无码试看一区二区三区| 亚洲福利电影一区二区?| 女人和拘做受全程看视频日本综合a一区二区视频 | 亚洲欧洲精品一区二区三区| 国产精品无码一区二区在线观| 精品国产亚洲一区二区在线观看| 国产高清视频一区三区| 怡红院一区二区三区| 国产一区视频在线| 国产精品久久久久久一区二区三区| 国产99精品一区二区三区免费| 青青青国产精品一区二区| 高清在线一区二区| 国产精品分类视频分类一区 | 中文字幕一区二区免费| 亚洲精品色播一区二区| 国产亚洲一区二区手机在线观看| 亚洲综合一区国产精品| 国产一区二区中文字幕| 日韩AV在线不卡一区二区三区| 国产成人精品久久一区二区三区| 久久国产高清一区二区三区 | 国产一区二区三区91| 国产一区韩国女主播| 美女视频一区三区网站在线观看|