电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:78日期: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 編程
主站蜘蛛池模板: 超声波反应釜【百科】-以马内利仪器 | 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | 机床导轨_导轨板_滚轮导轨-上海旻佑精密机械有限公司 | 刘秘书_你身边专业的工作范文写作小秘书 | 东莞喷砂机-喷砂机-喷砂机配件-喷砂器材-喷砂加工-东莞市协帆喷砂机械设备有限公司 | 一路商机网-品牌招商加盟优选平台-加盟店排行榜平台 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 西安文都考研官网_西安考研辅导班_考研培训机构_西安在职考研培训 | 定坤静电科技静电消除器厂家-除静电设备 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 九爱图纸|机械CAD图纸下载交流中心 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 澳洁干洗店加盟-洗衣店干洗连锁「澳洁干洗免费一对一贴心服务」 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 江门流水线|江门工作台|江门市伟涛行工业设备有限公司 | 沥青灌缝机_路面灌缝机_道路灌缝机_沥青灌缝机厂家_济宁萨奥机械有限公司 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 电动打包机_气动打包机_钢带捆扎机_废纸打包机_手动捆扎机 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 金属抛光机-磁悬浮抛光机-磁力研磨机-磁力清洗机 - 苏州冠古科技 | 避光流动池-带盖荧光比色皿-生化流动比色皿-宜兴市晶科光学仪器 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 旋转气浴恒温振荡器-往复式水浴恒温振荡器-金怡百科 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 湖南成人高考报名-湖南成考网 | 耐腐蚀泵,耐腐蚀真空泵,玻璃钢真空泵-淄博华舜耐腐蚀真空泵有限公司 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 抓斗式清污机|螺杆式|卷扬式启闭机|底轴驱动钢坝|污水处理闸门-方源水利机械 | 杭州|上海贴标机-百科| 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 |