精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

神器 ffmpeg :操作視頻,極度舒適

開發 后端
本以為是個一次性的工作,結果賽事視頻數據巨大,視頻文件長短不一,完全沒法手工處理,于是 Python 又一次拯救了我。

[[438178]]

 最近有了一個新任務,需要將賽事視頻,拆分成兩分鐘以內的小段,用于發布到短視頻平臺上。

本以為是個一次性的工作,結果賽事視頻數據巨大,視頻文件長短不一,完全沒法手工處理,于是 Python 又一次拯救了我。

還等什么,開始干吧!

最重要的事

無論做什么事情,都要去分析一下最重要的是什么,然后集中精力攻克,再繼續找最重要的事。

對我們這個任務來說,不算是個大項目,不過呢,還是要找最重要的事開始,步步為營,最終將整個問題解決了。

整體來來看,我們需要從一個目錄中讀取視頻文件,然后,對每個視頻文件進行裁剪,最后將處理好的文件保存好。

在這個過程中,最重要的是什么呢?我覺得,是視頻裁剪,如果不能方便的裁剪視頻,其他的一切工作都是白費的,是吧。

裁剪視頻

現在短視頻很流行,有很多視頻編輯軟件,功能豐富,而我們需要的只是裁剪功能,而且需要用編程的方式調用,那么最合適的莫過于 ffmpeg[1] 了。

ffmpeg 是一個命令行工具,功能強大,可以編程調用。

從 ffmpeg 官網上下載對應操作系統的版本,我下的是 Windows 版[2]。

下載后解壓到一個目錄,然后將目錄下的 bin,配置到環境變量里。然后打開一個命令行,輸入: 

  1. > ffmpeg -version  
  2. ffmpeg version 2021-10-07-git-b6aeee2d8b-full_build- ... 

測試一下,能顯示出版本信息,說明配置好了。

現在讀一下文檔,發現拆分視頻文件的命令是: 

  1. ffmpeg -i [filename] -ss [starttime] -t [length] -c copy [newfilename] 
  •  i 為需要裁剪的文件
  •  ss 為裁剪開始時間
  •  t 為裁剪結束時間或者長度
  •  c 為裁剪好的文件存放

好了,用 Python 寫一個調用: 

  1. import subprocess as sp  
  2. def cut_video(filename, outfile, start, length=90):  
  3.     cmd = "ffmpeg -i %s -ss %d -t %d -c copy %s" % (filename, start, length, outfile)  
  4.     p = sp.Popen(cmd, shell=True 
  5.     p.wait()  
  6.     return 
  •  定義了一個函數,通過參數傳入 ffmpeg 需要的信息
  •  將裁剪命令寫成一個字符串模板,將參數替換到其中
  •  用 subprocess 的 Popen 執行命令,其中參數 shell=True 表示將命令作為一個整體執行
  •  p.wait() 很重要,因為裁剪需要一會兒,而且是另起進程執行的,所以需要等執行完成再做后續工作,否則可能找不到裁剪好的文件

這樣視頻裁剪工作就完成了,然后再看看什么是最重要的。

計算分段

視頻裁剪時,需要一些參數,特別是開始時間,如何確定呢?如果這件事做不好,裁剪工作就很麻煩。

所以看看如何計算裁剪分段。

我需要將視頻裁剪成一分半的小段,那么將需要知道目標視頻文件的時間長度。

獲取視頻長度

如何獲得長度呢?ffmpeg 提供了另一個命令 —— ffprobe。

找了一下,可以合成一個命令來獲取: 

  1. > ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=11:nokey=1 -i a.flv  
  2. 920.667 

命令比較復雜哈,可以先不用管其他參數,只要將要分析的視頻文件傳入就好了。命令的結果是顯示一行視頻文件的長度。

于是可以編寫一個函數: 

  1. import subprocess as sp  
  2. def get_video_duration(filename):  
  3.     cmd = "ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -i %s" % filename  
  4.     p = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.PIPE)  
  5.     p.wait()  
  6.     strout, strerr = p.communicate() # 去掉最后的回車  
  7.     ret = strout.decode("utf-8").split("\n")[0]  
  8.     return ret 
  •  函數只有一個參數,就是視頻文件路徑
  • 合成命令語句,將視頻文件路徑替換進去
  •  用 subprocess 來執行,注意這里需要設置一下命令執行后的輸出
  •  用 wait 等待命令執行完成
  •  通過 communicate 提取輸出結果
  •  從結果中提取視頻文件的長度,返回

分段

得到了視頻長度,確定好每個分段的長度,就可以計算出需要多少分段了。

代碼很簡單: 

  1. import math  
  2. duration = math.floor(float(get_video_duration(filename)))  
  3. part = math.ceil(duration / length) 

注意,計算分段時,需要進行向上取整,即用 ceil,以包含最后的一點尾巴。

得到了需要的分段數,用一個循環就可以計算出每一段的起始時間了。

獲取文件

因為處理的文件很多,所以需要自動獲取需要處理的文件。

方法很簡單,也很常用,一般可以用 os.walk 遞歸獲取文件,還可以自己寫,具體根據實際情況。 

  1. for fname in os.listdir(dir):  
  2.     fname = os.path.join(dir, os.path.join(dir, fname))  
  3.     basenames = os.path.basename(fname).split('.')  
  4.     mainname = basenames[0].split("_")[0]  
  5.     ... 

提供視頻文件所在的目錄,通過 os.listdir 獲取目錄中的文件,然后,合成文件的絕對路徑,因為調用裁剪命令時需要絕對路徑比較方便。

獲取文件名,是為了在后續對裁剪好的文件進行命名。

代碼集成

現在每個部分都寫好了,可以將代碼集成起來了: 

  1. def main(dir):  
  2.     outdir = os.path.join(dir, "output")  
  3.     if not os.path.exists(outdir):  
  4.         os.mkdir(outdir)  
  5.     for fname in os.listdir(dir):  
  6.         fname = os.path.join(dir, os.path.join(dir, fname))  
  7.         if os.path.isfile(fname):  
  8.             split_video(fname, outdir) 
  •  main 方法是集成后的方法
  •  先創建一個裁剪好的存儲目錄,放在視頻文件目錄中的 output 目錄里
  •  通過 listdir 獲取到文件后,對每個文件進行處理,其中判斷了一下是否為文件
  •  調用 split_video 方法開始對一個視頻文件進行裁剪

總結

總體而言,這是個很簡單的應用,核心功能就是調用了一個 ffmpeg 命令。

相對于技術,更重要的是如何對一個項目進行分析和分解,以及從什么地方開始。

這里的方式起始時,不斷地找最重要地事情,以最重要的事情為線索不斷地推進,最終以自下而上地方式解決整個問題。

期望這篇文章對你有所啟發,比心。 

 

責任編輯:龐桂玉 來源: Python編程
相關推薦

2022-11-30 07:23:39

2024-02-27 13:03:38

前端視頻合成FFmpeg

2017-04-05 16:30:09

Node.jsFFmpeg Canvas

2022-06-23 09:17:07

PythonGUIPyAutoGUI

2012-11-07 10:27:20

2022-08-29 10:39:32

FFmpeg多媒體框架開源

2023-09-26 17:14:15

2021-03-15 06:49:03

Ffmpeg項目轉換庫

2020-06-09 08:05:11

Android 代碼操作系統

2020-05-14 13:35:59

開源視頻 技術

2025-05-21 08:23:52

IO開發Java

2013-07-25 14:00:18

AndroidGenymotion模擬器

2018-08-15 15:23:48

視頻

2009-11-11 08:54:27

Windows 7系統漏洞補丁下載

2020-12-28 13:55:11

云邊緣5G視頻云

2023-11-28 10:17:37

2025-02-04 10:23:56

C#視頻版權

2022-08-12 08:38:52

FFmpegLinux命令

2022-03-15 16:53:12

FFmpeg視頻解碼Android

2024-12-12 08:50:30

開源多媒體框架
點贊
收藏

51CTO技術棧公眾號

黑人巨大亚洲一区二区久 | 久久精品黄色| 国产精品女主播av| 亚洲日本欧美日韩高观看| 午夜精品免费视频| 精品少妇一区二区三区免费观| 91亚洲精品| 亚洲精品国久久99热| 久久久水蜜桃| 91中文字幕在线播放| 精品91久久久久| 亚洲深夜福利网站| 久久久精品人妻一区二区三区| 韩国美女久久| 亚洲一区免费观看| 中文字幕99| 免费在线高清av| 成人午夜视频免费看| 国产精品久久久久久久久影视| 久久久久久久极品内射| 成人直播大秀| 亚洲精品一区二三区不卡| 四川一级毛毛片| 国产成人久久精品麻豆二区| 黄色精品在线看| 午夜啪啪福利视频| a视频网址在线观看| av电影天堂一区二区在线| 成人免费观看网址| 欧美人一级淫片a免费播放| 亚洲激情不卡| 精品自在线视频| 小嫩苞一区二区三区| 一道在线中文一区二区三区| 亚洲第一天堂无码专区| 免费看的av网站| 91麻豆精品| 欧美撒尿777hd撒尿| 无码精品国产一区二区三区免费| 日本欧美电影在线观看| 最新热久久免费视频| 日韩电影天堂视频一区二区| 免费观看a视频| 国产成人亚洲精品青草天美 | 97久久香蕉国产线看观看| 亚洲国产美女搞黄色| 久久亚洲国产成人精品无码区 | 久久久亚洲成人| 日韩欧美在线视频播放| 免费电影一区二区三区| 亚洲精品久久7777777| 女女调教被c哭捆绑喷水百合| 亚洲高清国产拍精品26u| 欧美图片一区二区三区| 艹b视频在线观看| 日韩视频在线观看视频| 男女视频在线看| 中文字幕21页在线看| 婷婷综合另类小说色区| 免费无码不卡视频在线观看| 91av久久| 精品久久久久久久久久久久久久| 被灌满精子的波多野结衣| 欧美人与禽性xxxxx杂性| 一区二区久久久| 国产乱淫av片杨贵妃| av小说在线播放| 欧美日韩免费一区| 欧美两根一起进3p做受视频| 暖暖成人免费视频| 欧美日韩一区三区四区| 一区二区三区四区毛片| 亚洲精品在线国产| 日韩大陆毛片av| 日本免费www| 亚洲欧美色图| 91国产在线精品| 蜜臀99久久精品久久久久小说| 美国一区二区三区在线播放| 亚洲一区二区三区毛片| 丰满岳乱妇国产精品一区| 99国产精品久| 亚洲国产一区在线| 羞羞污视频在线观看| 欧美丝袜一区二区三区| 成人性视频欧美一区二区三区| 成人在线高清| 精品国产凹凸成av人网站| 大又大又粗又硬又爽少妇毛片 | 裸体武打性艳史| 亚洲大胆视频| 国产精品成久久久久三级| 国产一区二区三区成人| 99久久久精品| 亚洲欧洲一二三| 国产美女一区视频| 欧美性生交片4| 无码人妻丰满熟妇啪啪网站| 精品国产一区二区三区av片| 久久精品国产亚洲7777| 久久久久久久久久久久久久av| 免费观看久久久4p| 狠狠色伊人亚洲综合网站色| 麻豆tv在线| 狠狠躁天天躁日日躁欧美| 91蝌蚪视频在线| 亚洲香蕉视频| 欧美国产日韩精品| 一二三区在线播放| 91丨porny丨首页| 喜爱夜蒲2在线| 成人全视频在线观看在线播放高清| 精品裸体舞一区二区三区| 91麻豆制片厂| 麻豆成人精品| 国产精品视频在线免费观看 | 九色porny自拍| 全国精品免费看| 欧美日韩国产va另类| 伊人网av在线| 国产午夜久久久久| 又粗又黑又大的吊av| 天堂精品在线视频| 久久精品亚洲精品| 一级片视频免费| 久久久精品黄色| 僵尸世界大战2 在线播放| 免费一级欧美片在线观看网站| 国产午夜精品一区二区三区| √资源天堂中文在线| 成人三级伦理片| 浴室偷拍美女洗澡456在线| 国产乱子精品一区二区在线观看| 亚洲欧美日韩网| 欧美日韩综合在线观看| av一区二区三区黑人| 久久99久久久久久| 综合久久成人| 欧美黑人狂野猛交老妇| 国产黄色一区二区| 亚洲激情校园春色| 三上悠亚 电影| 欧美国产先锋| 丁香五月网久久综合| 麻豆影院在线| 91精品一区二区三区在线观看| 我要看一级黄色录像| 激情六月婷婷久久| 男插女免费视频| 精品国产伦一区二区三区观看说明 | 国产成人精品免高潮费视频| 天堂在线中文| 色综合久久久久网| 一级在线观看视频| 美女一区二区视频| 91制片厂免费观看| 欧美激情三级| 久久久免费av| 天天操天天干天天操| 欧美日韩国产在线| www.中文字幕av| 青草av.久久免费一区| 一区二区三区免费看| 国产高清精品二区| 久久久久久久久久久久av| 欧日韩在线视频| 日韩欧美国产成人| 五月天婷婷丁香网| 国产乱人伦精品一区二区在线观看 | 欧美一区2区视频在线观看| 日本a级片视频| 成年人午夜久久久| 91淫黄看大片| 91精品啪在线观看国产18| 成人动漫在线观看视频| 蜜桃视频在线观看播放| 国产一区二区久久精品| 国产农村老头老太视频| 无码av免费一区二区三区试看| 亚洲区免费视频| 精品一区二区av| 国产九九九九九| 九九九在线观看| 中国av一区| 国产极品精品在线观看| 麻豆网站在线免费观看| 日韩一卡二卡三卡四卡| 天天操天天干视频| 国产精品女上位| 白嫩情侣偷拍呻吟刺激| 天堂精品中文字幕在线| 欧洲精品视频在线| 校花撩起jk露出白色内裤国产精品| 国产成人精品网站| 91网在线看| 亚洲精品自拍偷拍| 国产精品亚洲lv粉色| 亚洲成在人线免费| 日韩免费成人av| 国产91在线看| 国产wwwxx| 亚洲精品综合| 国产大尺度在线观看| 影视先锋久久| www.成人av| 欧美成人三级| 91国内产香蕉| 成人福利电影| 精品一区精品二区高清| 亚洲欧洲久久| 天天久久夜夜| av成人在线电影| 久久国产三级| 欧洲亚洲免费视频| 欧美亚洲系列| 久久精品视频网站| 成人在线免费视频| 亚洲美女久久久| 黄色www视频| 日韩精品中文字幕在线一区| 一区二区视频网| 色综合色综合色综合| 日本特黄一级片| 伊人夜夜躁av伊人久久| 无码黑人精品一区二区| 国产精品欧美综合在线| 免费网站在线高清观看| 26uuu国产电影一区二区| 黄色国产在线视频| 粉嫩绯色av一区二区在线观看| 亚洲综合伊人久久| 久88久久88久久久| 在线观看岛国av| 久久精品国产一区二区三| 黄色三级视频在线| 日韩经典中文字幕一区| 国产精品亚洲a| 午夜亚洲伦理| 日韩免费视频播放| 亚洲免费成人| 啊啊啊一区二区| 国产视频一区在线观看一区免费| 国产在线观看欧美| 国产精品av一区二区| 白白操在线视频| 欧美精品入口| 日本aa在线观看| 亚洲视频久久| 国产美女无遮挡网站| 久久久久看片| 国产精彩免费视频| 奇米色一区二区三区四区| 婷婷激情四射五月天| 久久精品国产网站| 国内国产精品天干天干| 国产精品中文字幕欧美| 久久精品电影一区二区| 亚洲欧美日本在线观看| 亚洲精品久久久久中文字幕欢迎你| 粉嫩av一区二区夜夜嗨| 亚洲成色777777在线观看影院| 色一情一乱一乱一区91av| 亚洲精品美女久久| 九一国产在线| 色偷偷av一区二区三区乱| 91在线中文| 538国产精品一区二区在线| 日韩不卡在线| 成人性生交大片免费观看嘿嘿视频 | 亚洲精品免费在线观看视频| 亚洲成人精品在线| 可以在线观看的av网站| 久久精彩免费视频| heyzo高清在线| 国产精品爱啪在线线免费观看| 精品自拍视频| 美国美女黄色片| 久久精品国产一区二区| 欧美69精品久久久久久不卡| av在线这里只有精品| 精品人妻中文无码av在线| 亚洲精品一二三区| 中文在线第一页| 欧美一区二区三区四区视频| 亚洲 欧美 精品| 日韩最新在线视频| 538视频在线| 国产精品一二区| 国产精品毛片视频| 亚洲欧洲一二三| 亚洲精品孕妇| 国产在线视频三区| 国产午夜精品一区二区三区四区| 成人性生活毛片| 一本大道久久精品懂色aⅴ| 国产成人麻豆精品午夜在线 | 成人黄在线观看| 日本欧美韩国国产| 精品嫩模一区二区三区| 视频一区二区中文字幕| 日韩黄色一区二区| 国产精品天天摸av网| 日产欧产va高清| 777午夜精品免费视频| 亚洲综合激情五月| 91精品观看| 欧美日韩中文在线视频| 国产乱码字幕精品高清av| av网站免费在线看| 亚洲午夜羞羞片| 一二三区在线播放| 亚洲新中文字幕| 182在线视频观看| 亚洲在线视频观看| 国产情侣激情自拍| 日韩精品资源二区在线| 91啦中文在线| 日本成人黄色片| 狼人精品一区二区三区在线| 免费观看中文字幕| 久久国产精品72免费观看| 偷拍女澡堂一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美有码视频| 中日韩av在线播放| 国产目拍亚洲精品99久久精品| 国产原创视频在线| 亚洲成人av在线播放| 欧美性爽视频| 不卡一卡2卡3卡4卡精品在| 天天揉久久久久亚洲精品| 我要看一级黄色大片| 国产婷婷色一区二区三区在线| 在线观看黄网站| 亚洲韩国青草视频| 99re6在线精品视频免费播放| 成人免费视频网站| 国产精品va| 国产男女无遮挡猛进猛出| 亚洲乱码国产乱码精品精可以看| 97人妻一区二区精品免费视频 | 蜜桃视频一区二区三区| 免费一级黄色录像| 欧美日韩一区三区四区| 色综合久久影院| 国产精品精品视频| 久久影视一区| 国产高清av片| 亚洲在线中文字幕| 天堂网在线播放| 欧美一区二区视频97| 亚洲美女久久| 亚洲天堂网一区| 亚洲欧美日韩系列| 黄片毛片在线看| 日本电影亚洲天堂| 国产乱码精品一区二区三区四区| 超碰影院在线观看| 国产精品欧美极品| 国产黄色免费大片| 2024亚洲男人天堂| 久久亚洲影视| 亚洲妇女无套内射精| 香蕉成人伊视频在线观看| 理论视频在线| 成人欧美一区二区三区黑人| 亚洲午夜极品| 亚洲精品国产91| 日韩一区二区不卡| 92国产精品| 亚洲一区二区精品在线观看| 国产精品一二三四五| 久久久精品免费看| 色噜噜国产精品视频一区二区| 亚洲爽爆av| 9久久9毛片又大又硬又粗| 国产嫩草影院久久久久| 亚洲av无码乱码国产麻豆| 2018日韩中文字幕| 婷婷久久一区| 少妇一级淫免费观看| 在线观看亚洲一区| 污影院在线观看| 日本一区视频在线观看| 国产精品自在在线| 国产一级免费视频| 欧美成人在线免费视频| 精品美女久久| 亚洲图片欧美另类| 欧美视频一区在线| a√中文在线观看| 一本色道久久综合亚洲精品婷婷 | 精品视频第一页| 亚洲第一级黄色片| 日韩伦理一区二区| 美女av免费在线观看| 亚洲色图丝袜美腿| 黄色软件在线| 国产一区在线观| 国产一区二区精品久久99|