Python代碼生成視頻的縮略圖的實(shí)例講解
Reddit 上目前充斥著各種機(jī)器人賬號(hào),官方也非常支持這種行為,只要不是無意義的發(fā)言,機(jī)器人多了還能增加活躍度,吸引真人用戶一起來各抒己見,比如說每周都有的一個(gè)“煩人的星期二”的帖子,就是大伙兒吐槽生活中種種煩心事的好地方,因此提供了一整套開發(fā)者 API ,同時(shí) SDK 也不難找,這里有一個(gè)詳盡的列表,大家可以根據(jù)自己的語言喜好隨意取用。
腳本很簡(jiǎn)單,真正的困難在于視頻上傳, Reddit 的要求很特殊,有了帖子標(biāo)題和視頻路徑還不夠,還需要提供一張縮略圖, SDK 的文檔也說了,如果不提供,就會(huì)自動(dòng)上傳一張他們的 Logo 作為視頻的縮略圖。這個(gè)時(shí)候,就需要祭出 ffmpeg 了。
安裝
brew install ffmpeg
Python 也提供了 ffmpeg 的一層包裝—— ffmpy ,這層包裝本質(zhì)上是把傳入的參數(shù)翻譯成命令行,調(diào)用 subprocess 來執(zhí)行。比如說官網(wǎng)的示例
>>> import ffmpy
>>> ff = ffmpy.FFmpeg(
... inputs={'input.mp4': None},
... outputs={'output.avi': None}
... )
>>> ff.run()
本質(zhì)上是在命令行中運(yùn)行
ffmpeg -i input.mp4 output.avi
生成縮略圖
簡(jiǎn)單寫了個(gè)函數(shù)如下,給定視頻路徑,取第一幀作為縮略圖,保存為 jpg 格式
import ffmpy
def get_thumbnail_from_video(video_path):
thumbnail_path = video_path.replace(".mp4", ".jpg")
ff = ffmpy.FFmpeg(
inputs={video_path: None},
outputs={thumbnail_path: ['-ss', '00:00:00.000', '-vframes', '1']}
)
ff.run()
return thumbnail_path
在這里我簡(jiǎn)單假設(shè)視頻的格式都為 mp4 ,所以在路徑上簡(jiǎn)單替換了下,沒有進(jìn)行更詳盡的檢查。同樣地,本質(zhì)上是在執(zhí)行
ffmpeg -i video_path -ss 00:00:00.000 -vframes 1 thumbnail_path
這樣發(fā)帖的時(shí)候同時(shí)給出視頻和圖片,一行命令搞定過去各種點(diǎn)擊跳轉(zhuǎn)的操作,十分方便。
如果大家對(duì)以上知識(shí)點(diǎn)還有任何疑問,可以聯(lián)系小編,感謝大家對(duì)腳本之家的支持。
相關(guān)文章
Django?celery的替代品Dramatiq使用特性詳解
這篇文章主要為大家介紹了Django?celery的替代品Dramatiq使用特性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
python中強(qiáng)制關(guān)閉線程與協(xié)程與進(jìn)程方法
python使用中多線程、多進(jìn)程、多協(xié)程使用是比較常見的。那么如果在多線程等的使用,我們這個(gè)時(shí)候我們想從外部強(qiáng)制殺掉該線程請(qǐng)問如何操作?這篇文章帶你介紹,感興趣的同學(xué)可以參考閱讀2023-03-03
基于Python實(shí)現(xiàn)從頭搭建一個(gè)在線聊天室框架
這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)從頭搭建一個(gè)在線聊天室框架,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-11-11
python2.x實(shí)現(xiàn)人民幣轉(zhuǎn)大寫人民幣
這篇文章主要為大家詳細(xì)介紹了python2.x實(shí)現(xiàn)人民幣轉(zhuǎn)大寫人民幣,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
Ubuntu下創(chuàng)建虛擬獨(dú)立的Python環(huán)境全過程
virtualenv可以搭建虛擬且獨(dú)立的python環(huán)境,可以使每個(gè)項(xiàng)目環(huán)境與其他項(xiàng)目獨(dú)立開來,保持環(huán)境的干凈,解決包沖突問題。本篇文章講述如何在Linux以及Ubuntu中創(chuàng)建Python虛擬環(huán)境,以及Virtualenvwrapper的安裝使用,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02
Python機(jī)器學(xué)習(xí)工具scikit-learn的使用筆記
這篇文章主要介紹了Python機(jī)器學(xué)習(xí)工具scikit-learn的使用筆記,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01
Python自動(dòng)化辦公之合并多個(gè)Excel
在日常的辦公自動(dòng)化工作中,尤其是處理大量數(shù)據(jù)時(shí),合并多個(gè)?Excel?表格是一個(gè)常見且繁瑣的任務(wù),下面小編就來為大家介紹一下如何使用Python輕松實(shí)現(xiàn)合并多個(gè)Excel吧2025-02-02
在Python3.74+PyCharm2020.1 x64中安裝使用Kivy的詳細(xì)教程
這篇文章主要介紹了在Python3.74+PyCharm2020.1 x64中安裝使用Kivy的詳細(xì)教程,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08

