成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Python調用ffmpeg開源視頻處理庫,批量處理視頻

瀏覽:167日期:2022-07-05 11:16:04

代碼示例

# coding=utf-8import osimport subprocessimport datetimeimport json, pprintimport re, timeimport threadingimport randomimport shutilclass FFmpeg: def __init__(self, editvdo, addlogo=None, addmusic=None, addvdohead=None, addvdotail=None): self.editvdo = editvdo self.addlogo = addlogo self.addmusic = addmusic self.addvdohead = addvdohead self.addvdotail = addvdotail self.vdo_time, self.vdo_width, self.vdo_height, self.attr_dict = self.get_attr() self.editvdo_path = os.path.dirname(editvdo) self.editvdo_name = os.path.basename(editvdo) def get_attr(self): ''' 獲取視頻屬性參數 :return: ''' strcmd = r’ffprobe -print_format json -show_streams -i '{}'’.format(self.editvdo) status, output = subprocess.getstatusoutput(strcmd) agrs = eval(re.search(’{.*}’, output, re.S).group().replace('n', '').replace(' ', ’’)) streams = agrs.get(’streams’, []) agrs_dict = dict() [agrs_dict.update(x) for x in streams] vdo_time = agrs_dict.get(’duration’) vdo_width = agrs_dict.get(’width’) vdo_height = agrs_dict.get(’height’) attr = (vdo_time, vdo_width, vdo_height, agrs_dict) return attr def edit_head(self, start_time, end_time, deposit=None): ''' 截取指定長度視頻 :param second: 去除開始的多少秒 :param deposit: 另存為文件 :return: True/Flase ''' if None == deposit: deposit = self.editvdo_path+’/’+’edit_head’+self.editvdo_name start = time.strftime(’%H:%M:%S’, time.gmtime(start_time)) end = time.strftime(’%H:%M:%S’, time.gmtime(end_time)) strcmd = ’ffmpeg -i '{}' -vcodec copy -acodec copy -ss {} -to {} '{}' -y’.format( self.editvdo, start, end, deposit) result = subprocess.run(args=strcmd, stdout=subprocess.PIPE, shell=True) if os.path.exists(deposit): os.remove(self.editvdo) os.rename(deposit, self.editvdo) return True else: return False def edit_logo(self, deposit=None): ''' 添加水印 :param deposit:添加水印后另存為路徑,為空則覆蓋 :return: True/False ''' if None == deposit: deposit = self.editvdo_path+’/’+’edit_logo’+self.editvdo_name strcmd = r’ffmpeg -i '{}' -vf 'movie=’{}’ [watermark];[in] ’ r’[watermark] overlay=main_w-overlay_w-10:10 [out]' '{}'’.format( self.editvdo, self.addlogo, deposit) result = subprocess.run(args=strcmd, stdout=subprocess.PIPE, shell=True) if os.path.exists(deposit): os.remove(self.editvdo) os.rename(deposit, self.editvdo) return True else: return False def edit_music(self, deposit=None): if None == deposit: deposit = self.editvdo_path+’/’+’edit_music’+self.editvdo_name strcmd = r’ffmpeg -y -i '{}' -i '{}' -filter_complex '[0:a] ’ r’pan=stereo|c0=1*c0|c1=1*c1 [a1], [1:a] ’ r’pan=stereo|c0=1*c0|c1=1*c1 [a2],[a1][a2]amix=duration=first,’ r’pan=stereo|c0<c0+c1|c1<c2+c3,pan=mono|c0=c0+c1[a]' ’ r’-map '[a]' -map 0:v -c:v libx264 -c:a aac ’ r’-strict -2 -ac 2 '{}'’.format(self.editvdo, self.addmusic, deposit) result = subprocess.run(args=strcmd, stdout=subprocess.PIPE, shell=True) if os.path.exists(deposit): os.remove(self.editvdo) os.rename(deposit, self.editvdo) return True else: return False def edit_rate(self, rete=30, deposit=None): ''' 改變幀率 :param rete: 修改大小幀率 :param deposit: 修改后保存路徑 :return: ''' if None == deposit: deposit = self.editvdo_path+’/’+’edit_music’+self.editvdo_name strcmd = r’ffmpeg -i '{}' -r {} '{}'’ % (self.editvdo, rete, deposit) result = subprocess.run(args=strcmd, stdout=subprocess.PIPE, shell=True) if os.path.exists(deposit): os.remove(self.editvdo) os.rename(deposit, self.editvdo) return True else: return False def edit_power(self, power=’1280x720’, deposit=None): ''' 修改分辨率 :param power: 分辨率 :param deposit: 修改后保存路徑,為空則覆蓋 :return: ''' if None == deposit: deposit = self.editvdo_path+’/’+’edit_power’+self.editvdo_name strcmd = r’ffmpeg -i '{}' -s {} '{}'’.format(self.editvdo, power, deposit) result = subprocess.run(args=strcmd, stdout=subprocess.PIPE, shell=True) if os.path.exists(deposit): os.remove(self.editvdo) os.rename(deposit, self.editvdo) return True else: return False def rdit_marge(self, vdo_head, vdo_tail, deposit=None): if None == deposit: deposit = self.editvdo_path+’/’+’rdit_marge’+self.editvdo_name with open(self.editvdo_path+’/’+’rdit_marge.txt’, ’w’, encoding=’utf-8’) as f: f.write('file ’{}’ nfile ’{}’ nfile ’{}’' .format(vdo_head, self.editvdo, vdo_tail)) strcmd = r’ffmpeg -f concat -safe 0 -i '{}' -c copy '{}'’.format( self.editvdo_path + ’/’ + ’rdit_marge.txt’, deposit) result = subprocess.run(args=strcmd, stdout=subprocess.PIPE, shell=True) if os.path.exists(deposit): os.remove(self.editvdo) os.rename(deposit, self.editvdo) return True else: return False # ffmpeg - i input.mkv - filter_complex '[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]' - map'[v]' - map'[a]' output.mkvtest = FFmpeg(r'D:vdio4.mp4')pass

以上就是Python調用ffmpeg開源視頻處理庫,批量處理視頻的詳細內容,更多關于python 批量處理視頻的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
91成人免费电影| 成人免费高清在线观看| 一区二区三区日韩欧美| 精品一区二区在线观看| 亚洲欧美综合国产精品一区| 91精彩视频在线| 中文字幕精品在线不卡| 九一久久久久久| 亚洲黑丝一区二区| 欧美精品v日韩精品v韩国精品v| 久久精品一区二区三区不卡牛牛| 亚洲444eee在线观看| 99免费精品在线观看| 日本高清不卡视频| 国产日产欧美一区二区三区| 伦理电影国产精品| 国产字幕视频一区二区| 欧美精品欧美精品系列| 一区二区三区欧美激情| 本田岬高潮一区二区三区| 狼狼综合久久久久综合网| 国产蜜臀97一区二区三区| 国产在线不卡视频| 亚洲欧美日韩精品在线| 国产欧美视频在线观看| 国产一区不卡在线| 久久国产一区二区| 国产精品欧美久久久久无广告| 国产福利一区二区| 日本高清不卡一区| 一区二区不卡在线播放| caoporm超碰国产精品| 欧美亚洲一区二区在线| 一区二区久久久| 在线播放一区| 久久久五月婷婷| 国产一区二区三区免费看| 国产精品视频久久一区| 亚洲国产精品ⅴa在线观看| 国产酒店精品激情| 老牛国产精品一区的观看方式| 国产精品久久久久久久久晋中| 成人午夜免费视频| 欧美日韩精品一区二区三区| 亚洲情趣在线观看| 欧美日本不卡高清| 欧美mv和日韩mv的网站| 国内精品写真在线观看| 色偷偷一区二区三区| 一区二区免费视频| 一本不卡影院| 中文字幕一区视频| 欧美日韩精品免费看| 久久久亚洲高清| 成人综合在线观看| 欧美一区二区三区思思人| 欧美aaa在线| 久久大逼视频| 一区二区三区免费| 精品69视频一区二区三区Q| 久久久久久一级片| 成人中文字幕在线| 91精品综合久久久久久| 久久成人免费日本黄色| 91黄色激情网站| 五月综合激情网| 亚洲一区日韩在线| 亚洲一区电影777| 国产伦精品一区二区三区| 亚洲美女屁股眼交| 亚洲激情婷婷| 亚洲激情六月丁香| 一本久久综合| 一区二区三区美女视频| 一区二区三区四区五区在线| 亚洲伦在线观看| 亚洲国产午夜| 亚洲精品自拍动漫在线| 亚洲欧洲一区| 一区二区三区中文在线| 99精品视频免费观看视频| 亚洲一区二区三区在线| 亚洲中字在线| 亚洲电影在线播放| 色综合久久久久久久久久久| 丝袜亚洲另类丝袜在线| 欧洲av在线精品| 国内精品在线播放| 日韩欧美中文字幕制服| www.欧美精品一二区| 国产日韩亚洲欧美综合| 欧美精品激情| 亚洲视频在线一区观看| 精品国精品国产尤物美女| 成人小视频免费在线观看| 精品国产乱码久久久久久1区2区| 午夜久久影院| 亚洲精品日日夜夜| 久久久99爱| 久久se这里有精品| 欧美一级生活片| www.日韩在线| 国产精品福利影院| 亚洲综合99| 美女视频黄a大片欧美| 欧美高清精品3d| av一二三不卡影片| 欧美国产欧美综合| 国产亚洲福利| 激情都市一区二区| 久久综合久久综合久久综合| 黄色精品网站| 日韩精品免费专区| 日韩片之四级片| 亚洲婷婷在线| 奇米在线7777在线精品| 日韩欧美国产wwwww| 欧美三级在线| 午夜精品国产更新| 日韩丝袜情趣美女图片| 亚洲视频碰碰| 奇米影视一区二区三区小说| 日韩亚洲欧美高清| 韩日欧美一区| 日本成人在线不卡视频| 欧美成人性福生活免费看| 黄色欧美日韩| 91精品国产91热久久久做人人| 激情一区二区三区| 国产不卡在线视频| 日日夜夜精品视频免费| 亚洲国产岛国毛片在线| 丰满白嫩尤物一区二区| 精品日韩一区二区| 国产欧美日韩伦理| 国产乱妇无码大片在线观看| 国产精品国模大尺度视频| 久久久777| 欧美99久久| 日韩成人dvd| 久久精品视频免费| 一本到高清视频免费精品| 成人精品鲁一区一区二区| 亚洲精选在线视频| 日韩精品一区二区三区中文精品 | 亚洲人www| 精品综合久久久久久8888| 国产精品久久久一本精品| 欧美影片第一页| 欧美.www| 久久精品噜噜噜成人88aⅴ| 国产精品每日更新| 欧美精品丝袜中出| 一区二区三区偷拍| av午夜精品一区二区三区| 爽爽淫人综合网网站| 国产欧美一区二区三区在线看蜜臀 | 亚洲无线码一区二区三区| 日韩美女视频在线| 午夜亚洲视频| 欧美成人综合一区| 麻豆久久久久久| 亚洲欧洲制服丝袜| 精品成人在线观看| 欧美专区亚洲专区| 亚洲久久成人| 99精品国产91久久久久久 | 成人黄色a**站在线观看| 偷窥国产亚洲免费视频| 国产精品久久久久一区| 欧美一区二区人人喊爽| 校园激情久久| 欧美激情第六页| 国产精品一区一区| 亚洲一区二区三区四区在线观看| 久久久精品影视| 欧美高清激情brazzers| 久久国产欧美精品| 亚洲激情一区二区| www.66久久| 狠狠狠色丁香婷婷综合久久五月| 亚洲欧美另类小说视频| 久久美女艺术照精彩视频福利播放 | 色先锋资源久久综合| 在线欧美三区| 欧美成人精品| 高清在线不卡av| 久久99热这里只有精品| 亚洲成av人片在www色猫咪| 中文字幕精品一区| 精品久久久久一区| 91精品国产综合久久精品app| 久久一综合视频| 免费在线播放第一区高清av| 亚洲国产电影| 欧美日韩亚洲一区| 欧美一站二站| 99热这里都是精品| 99久久综合狠狠综合久久| 国产精品99久久久久久宅男|