python+ffmpeg讓字符跳動起來

項(xiàng)目環(huán)境

語言:Python3
編輯器:Pycharm
導(dǎo)包:PIL踊兜、numpy
安裝軟件:FFmpeg

安裝軟件

1.下載ffmpeg度苔,這里只說Windows下的方式俊戳,首先去官網(wǎng)竣付,下載Windows版本的安裝包
ffmpeg.png

2.下載完成后,解壓鉴象,然后找到目錄下的bin文件夾忙菠,將該目錄配置到環(huán)境變量中
解壓目錄.png

3.驗(yàn)證是否安裝配置成功,打開cmd纺弊,輸入ffmpeg -version牛欢,出現(xiàn)如下界面則配置成功
sucess.png

程序思路

1.把視頻轉(zhuǎn)換為圖片
2.把圖片轉(zhuǎn)為編碼,存成txt文件
3.“播放”這些txt文件

視頻轉(zhuǎn)圖片

get_image(video_path, image_path)淆游,兩個(gè)參數(shù)就是你的視頻路徑和存放圖片的路徑傍睹。然后os.system()那句話就是讓你的Windows在cmd里面執(zhí)行里面那句話,-i 后面需要指定輸入的文件名犹菱。-f 指定格式(音頻或視頻格式)焰望。-vframes 設(shè)置轉(zhuǎn)換多少楨(frame)的視頻。-ss 從指定的時(shí)間(s)截圖已亥。

def getImage(video_path, image_path):
    img_count = 1
    crop_time = 0.0
    while crop_time <= 15.0:#轉(zhuǎn)化15s的視頻
        os.system('ffmpeg -i %s -f image2 -ss %s -vframes 1 %s.png'% (video_path, str(crop_time), video_path+ str(img_count)))
        img_count += 1
        print('Geting Image ' + str(img_count) + '.png' + ' from time ' + str(crop_time))
        crop_time += 0.1#每0.1秒截取一張照片
    print('視頻轉(zhuǎn)化完成!@赐馈虑椎!')

在cmd命令行中運(yùn)行此函數(shù),查看對應(yīng)文件夾是否有圖片生成俱笛。

圖片轉(zhuǎn)txt

def image_to_txt(image_path, txt_path):
    # 這里使用到PIL庫convert函數(shù)捆姜,將RGB圖片轉(zhuǎn)化為灰度圖,參數(shù)'L'代表轉(zhuǎn)化為灰度圖
    im = Image.open(image_path).convert('L')
    charWidth = 100
    # 這個(gè)是設(shè)置你后面在cmd里面顯示內(nèi)容的窗口大小迎膜,請根據(jù)自己的情況泥技,適當(dāng)調(diào)整值
    im = im.resize((charWidth, charWidth // 2))
    target_width, target_height = im.size
    data = numpy.array(im)[:target_height, :target_width]
    f = open(txt_path, 'w',encoding='utf-8')
    for row in data:
        for pixel in row:
            if pixel > 127: # 如果灰度值大于127,也就是偏白的磕仅,就寫一個(gè)字符 '1'
                f.write('1')
            else:
                f.write(' ')
        f.write('\n')
    f.close() 
def getTxt(image_path, txt_path):#調(diào)用上面的函數(shù)image_to_txt
    img_count = 1# 一張圖對應(yīng)一個(gè)txt文件珊豹,所以每遍歷一張圖,該值加一

    while img_count <= len(os.listdir(image_path)):
        #os.listdir(image_path)# 返回所有圖片名稱榕订,是個(gè)字符串列表
        imageFile = image_path+ str(img_count) + '.png'
        txtFile = txt_path+ str(img_count) + '.txt'
        image_to_txt.image_to_txt(imageFile, txtFile)
        print('舞蹈加載中: ' + str(img_count) + '%')
        img_count += 1

播放輸出

通過 os.system('cls') 控制屏幕的及時(shí)清除店茶,以便及時(shí)顯示下一幀圖片的編碼。

if __name__ == '__main__':
        video_dir_path = r'D:\dance\dance.mp4' + '\\'#存儲視頻文件的路徑
    txt_dir_path = r'D:\dance\txt' + '\\'#存儲txt文件的路徑
    img_dir_path = r'D:\dance\images' + '\\'#存儲圖片的路徑
        getImage(video_dir_path, img_dir_path )
    getTxt(img_dir_path, txt_dir_path)
    run(txt_dir_path)

def run(txtPath):
    txt_count = 1
    while txt_count <= len(os.listdir(txtPath)):
        os.system('type ' + txtPath + str(txt_count) + '.txt')
        # 這里type命令是Windows下的命令劫恒,type+文件名贩幻,就可以在cmd里面顯示文件內(nèi)容
        txt_count += 1
        os.system('cls')

運(yùn)行

此程序由三個(gè)文件組成轿腺,如下圖。建立相對應(yīng)的目錄丛楚,提前下好視頻文件族壳,放到對應(yīng)的目錄,打開cmd窗口趣些,運(yùn)行run.py仿荆,執(zhí)行時(shí)間稍長,等待片刻喧务。
project.png
image.png
txt.png

效果截圖.png

更多內(nèi)容請關(guān)注公眾號

元大頭.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赖歌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子功茴,更是在濱河造成了極大的恐慌庐冯,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坎穿,死亡現(xiàn)場離奇詭異展父,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)玲昧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門栖茉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人孵延,你說我怎么就攤上這事吕漂。” “怎么了尘应?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵惶凝,是天一觀的道長。 經(jīng)常有香客問我犬钢,道長苍鲜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任玷犹,我火速辦了婚禮混滔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘歹颓。我一直安慰自己坯屿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布巍扛。 她就那樣靜靜地躺著愿伴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪电湘。 梳的紋絲不亂的頭發(fā)上隔节,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天鹅经,我揣著相機(jī)與錄音,去河邊找鬼怎诫。 笑死瘾晃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的幻妓。 我是一名探鬼主播蹦误,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肉津!你這毒婦竟也來了强胰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤妹沙,失蹤者是張志新(化名)和其女友劉穎偶洋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體距糖,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玄窝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了悍引。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恩脂。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖趣斤,靈堂內(nèi)的尸體忽然破棺而出俩块,到底是詐尸還是另有隱情,我是刑警寧澤浓领,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布典阵,位于F島的核電站,受9級特大地震影響镊逝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嫉鲸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一撑蒜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧玄渗,春花似錦座菠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至岁钓,卻和暖如春升略,著一層夾襖步出監(jiān)牢的瞬間微王,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工品嚣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炕倘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓翰撑,卻偏偏與公主長得像罩旋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子眶诈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 1涨醋、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,971評論 3 119
  • 媽媽們最擔(dān)心的就是寶寶的健康和發(fā)育 而益生菌可以保護(hù)寶寶腸道健康 排出對寶寶身體有害的細(xì)菌 DHA能夠促進(jìn)寶寶的大...
    嘟嘟萌萌閱讀 198評論 0 0
  • 大家在做滾動廣告的時(shí)候,如果遇到第一張圖片向下偏移的話逝撬,在你創(chuàng)建滾動視圖的Viewcontroller里面加上se...
    香蕉你個(gè)菠蘿閱讀 140評論 0 0
  • 記不住是從什么時(shí)候才開始注意你的浴骂,只記得那是一個(gè)午后,吃完午飯的我球拦,無聊的刷著微信靠闭。不知道怎么想的,就去看了你的朋...
    子羽空靈閱讀 308評論 0 0