日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:209日期: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 編程
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩在线电影| 亚洲精品伊人| 久久精品99国产精品| 日本一区福利在线| 日本少妇一区二区| 美女高潮久久久| 天堂av在线| 欧美日韩国产综合网| 午夜在线一区二区| 日本在线视频一区二区| 国产精品videossex| 国产成人调教视频在线观看| 精品丝袜在线| 欧美aa在线视频| 国产精品精品国产一区二区| 国产精品毛片久久| 99综合视频| 日韩精品亚洲一区二区三区免费| 婷婷久久免费视频| 老色鬼精品视频在线观看播放| 精品国产成人| 激情不卡一区二区三区视频在线| 亚洲一级二级| 91精品国产乱码久久久久久久| 久久九九国产| 日韩在线卡一卡二| 国产精品一区三区在线观看| 成人精品高清在线视频| 亚洲精品麻豆| 另类欧美日韩国产在线| 欧美不卡视频| 亚洲精选久久| 国产欧美成人| 麻豆mv在线观看| 亚洲日本久久| 日本蜜桃在线观看视频| 天堂成人免费av电影一区 | 久久精品国产久精国产爱| 欧美日韩一区二区综合| 日韩avvvv在线播放| 欧美日韩va| 日本免费新一区视频| 国产精品麻豆久久| 亚洲精品一二三**| 久久不卡日韩美女| 日韩精品看片| 日韩中文字幕麻豆| 色爱综合网欧美| 亚洲在线观看| 久久男人天堂| 亚洲人成亚洲精品| 国产精品欧美三级在线观看| 国产一区日韩一区| 久久精品国产亚洲一区二区三区| 欧美a级片一区| 日本午夜精品久久久久| 成人精品亚洲| 一区二区三区四区在线看| 免费观看在线色综合| 国产激情在线播放| 无码日韩精品一区二区免费| 久久中文字幕一区二区三区| 极品日韩av| 国产v日韩v欧美v| 亚洲精品成a人ⅴ香蕉片| 亚洲成av在线| 国产欧美日韩一级| 亚洲ww精品| 三级一区在线视频先锋| 免费黄色成人| 国产日韩欧美一区| 国产婷婷精品| 91高清一区| 久久精品青草| 欧美日韩视频网站| 中文字幕人成乱码在线观看 | 国产白浆在线免费观看| 国产精品一区二区中文字幕| 亚洲欧美日韩精品一区二区| 久久婷婷久久| 久久精品电影| 99国产精品免费视频观看| 日韩国产在线一| 日韩一区二区三区精品视频第3页| 亚洲欧美日韩视频二区| 亚洲一区亚洲| 久久亚洲影院| 人人精品人人爱| 每日更新成人在线视频| 亚洲免费激情| 日韩一区二区免费看| 欧美国产91| 黄色不卡一区| 国产农村妇女精品一区二区| 中文亚洲免费| 免费在线视频一区| 日本一不卡视频| 免费久久99精品国产| 日韩中文字幕不卡| 日韩有吗在线观看| 国产剧情一区二区在线观看| 国产福利一区二区精品秒拍| 久久亚洲国产精品尤物| 精品色999| 少妇精品导航| 亚洲一区二区毛片| 天堂俺去俺来也www久久婷婷| 日韩精品免费一区二区夜夜嗨| 久久精品一本| 日本午夜精品久久久| 国产乱人伦精品一区| 久久爱www.| 国产精品99精品一区二区三区∴| 美腿丝袜亚洲一区| 日韩中文字幕高清在线观看| 91精品一区二区三区综合| 亚洲一区二区免费看| 日本一区免费网站| 久久超碰99| 三上悠亚国产精品一区二区三区 | 国产精品久久久久久久久久白浆| 麻豆免费精品视频| 日本免费一区二区三区四区| 91久久国产| 日韩高清在线观看一区二区| 欧美一区自拍| 激情国产在线| 亚洲一区二区三区无吗| 国产欧美亚洲一区| 偷拍精品精品一区二区三区| 99综合视频| 国产精品男女| 999国产精品视频| 亚洲精品在线二区| 国内自拍视频一区二区三区| 欧美午夜精彩| 日本亚洲欧美天堂免费| 岛国av在线播放| 蜜臀国产一区二区三区在线播放| 国产高清视频一区二区| 丰满少妇一区| 亚洲少妇在线| 美腿丝袜亚洲一区| 欧美日韩精品一本二本三本| 国产亚洲观看| 国精品一区二区| 国产精品magnet| 成人av二区| 久久久精品区| 一区二区精品| 国产精品毛片久久| 在线视频日韩| 欧美日韩黄网站| 国内激情久久| 久久久国产精品入口麻豆| а√天堂8资源中文在线| 中文字幕免费精品| 成人午夜毛片| 日本亚州欧洲精品不卡| 精品亚洲美女网站| 91精品日本| 久久精品亚洲人成影院| 国产亚洲一区| 亚洲主播在线| 日韩一区二区三区免费| 国产精品久久免费视频| 国产亚洲毛片| 欧美日韩免费看片| 麻豆国产精品| 日韩av不卡在线观看| 久久精品国产大片免费观看| 欧美黄色一区| 婷婷精品在线观看| 亚洲精品91| 99精品视频精品精品视频| 精品中文字幕一区二区三区四区| 亚洲深深色噜噜狠狠爱网站 | 美女精品久久| 亚洲色图国产| 亚洲成人免费| 一区二区三区视频免费观看| caoporn视频在线| 日本vs亚洲vs韩国一区三区二区| 欧美一区二区性| 日韩在线不卡| 国产福利电影在线播放| 欧美国产不卡| 国产精品videossex| 日本aⅴ亚洲精品中文乱码| 蜜桃视频一区二区三区| 国产亚洲在线| 亚洲一区二区成人| 亚洲成人日韩| 欧美一区二区三区高清视频| 激情视频网站在线播放色| 精品亚洲免a| 国产一区国产二区国产三区| 国产欧美日韩免费观看| 日韩精品1区2区3区| 日韩国产在线观看|