游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

神器ffmpeg操作视频,极度舒适

  作者:李晓飞
  来源:Python技术
  最近有了一个新任务,需要将赛事视频,拆分成两分钟以内的小段,用于发布到短视频平台上。
  本以为是个一次性的工作,结果赛事视频数据巨大,视频文件长短不一,完全没法手工处理,于是Python又一次拯救了我。
  还等什么,开始干吧!最重要的事
  无论做什么事情,都要去分析一下最重要的是什么,然后集中精力攻克,再继续找最重要的事。
  对我们这个任务来说,不算是个大项目,不过呢,还是要找最重要的事开始,步步为营,最终将整个问题解决了。
  整体来来看,我们需要从一个目录中读取视频文件,然后,对每个视频文件进行裁剪,最后将处理好的文件保存好。
  在这个过程中,最重要的是什么呢?我觉得,是视频裁剪,如果不能方便的裁剪视频,其他的一切工作都是白费的,是吧。裁剪视频
  现在短视频很流行,有很多视频编辑软件,功能丰富,而我们需要的只是裁剪功能,而且需要用编程的方式调用,那么最合适的莫过于ffmpeg〔1〕了。
  ffmpeg是一个命令行工具,功能强大,可以编程调用。
  从ffmpeg官网上下载对应操作系统的版本,我下的是Windows版〔2〕。
  下载后解压到一个目录,然后将目录下的bin,配置到环境变量里。然后打开一个命令行,输入:ffmpegversionffmpegversion20211007gitb6aeee2d8bfullbuild。。。
  测试一下,能显示出版本信息,说明配置好了。
  现在读一下文档,发现拆分视频文件的命令是:ffmpegi〔filename〕ss〔starttime〕t〔length〕ccopy〔newfilename〕i为需要裁剪的文件ss为裁剪开始时间t为裁剪结束时间或者长度c为裁剪好的文件存放
  好了,用Python写一个调用:importsubprocessasspdefcutvideo(filename,outfile,start,length90):cmdffmpegisssdtdccopys(filename,start,length,outfile)psp。Popen(cmd,shellTrue)p。wait()return定义了一个函数,通过参数传入ffmpeg需要的信息将裁剪命令写成一个字符串模板,将参数替换到其中用subprocess的Popen执行命令,其中参数shellTrue表示将命令作为一个整体执行p。wait()很重要,因为裁剪需要一会儿,而且是另起进程执行的,所以需要等执行完成再做后续工作,否则可能找不到裁剪好的文件
  这样视频裁剪工作就完成了,然后再看看什么是最重要的。计算分段
  视频裁剪时,需要一些参数,特别是开始时间,如何确定呢?如果这件事做不好,裁剪工作就很麻烦。
  所以看看如何计算裁剪分段。
  我需要将视频裁剪成一分半的小段,那么将需要知道目标视频文件的时间长度。获取视频长度
  如何获得长度呢?ffmpeg提供了另一个命令ffprobe。
  找了一下,可以合成一个命令来获取:ffprobeverrorshowentriesformatdurationofdefaultnoprintwrappers1:nokey1ia。flv920。667
  命令比较复杂哈,可以先不用管其他参数,只要将要分析的视频文件传入就好了。命令的结果是显示一行视频文件的长度。
  于是可以编写一个函数:importsubprocessasspdefgetvideoduration(filename):cmdffprobeverrorshowentriesformatdurationofdefaultnoprintwrappers1:nokey1isfilenamepsp。Popen(cmd,stdoutsp。PIPE,stderrsp。PIPE)p。wait()strout,strerrp。communicate()去掉最后的回车retstrout。decode(utf8)。split()〔0〕returnret函数只有一个参数,就是视频文件路径合成命令语句,将视频文件路径替换进去用subprocess来执行,注意这里需要设置一下命令执行后的输出用wait等待命令执行完成通过communicate提取输出结果从结果中提取视频文件的长度,返回分段
  得到了视频长度,确定好每个分段的长度,就可以计算出需要多少分段了。
  代码很简单:importmathdurationmath。floor(float(getvideoduration(filename)))partmath。ceil(durationlength)
  注意,计算分段时,需要进行向上取整,即用ceil,以包含最后的一点尾巴。
  得到了需要的分段数,用一个循环就可以计算出每一段的起始时间了。获取文件
  因为处理的文件很多,所以需要自动获取需要处理的文件。
  方法很简单,也很常用,一般可以用os。walk递归获取文件,还可以自己写,具体根据实际情况。forfnameinos。listdir(dir):fnameos。path。join(dir,os。path。join(dir,fname))basenamesos。path。basename(fname)。split(。)mainnamebasenames〔0〕。split()〔0〕。。。
  提供视频文件所在的目录,通过os。listdir获取目录中的文件,然后,合成文件的绝对路径,因为调用裁剪命令时需要绝对路径比较方便。
  获取文件名,是为了在后续对裁剪好的文件进行命名。代码集成
  现在每个部分都写好了,可以将代码集成起来了:defmain(dir):outdiros。path。join(dir,output)ifnotos。path。exists(outdir):os。mkdir(outdir)forfnameinos。listdir(dir):fnameos。path。join(dir,os。path。join(dir,fname))ifos。path。isfile(fname):splitvideo(fname,outdir)main方法是集成后的方法先创建一个裁剪好的存储目录,放在视频文件目录中的output目录里通过listdir获取到文件后,对每个文件进行处理,其中判断了一下是否为文件调用splitvideo方法开始对一个视频文件进行裁剪总结
  总体而言,这是个很简单的应用,核心功能就是调用了一个ffmpeg命令。
  相对于技术,更重要的是如何对一个项目进行分析和分解,以及从什么地方开始。
  这里的方式起始时,不断地找最重要地事情,以最重要的事情为线索不断地推进,最终以自下而上地方式解决整个问题。
  期望这篇文章对你有所启发,比心。

诚邀您莅临,2018马丁吉他夏日讲座在传统家族式的管理模式下,Martin马丁吉他已经走过了180多年,传承到家族的第6代掌门人ChrisMartin。Martin马丁吉他的品牌故事、Customshop系列、主……服务机器人需求剧增,盘点这条赛道上的赢家文杨剑勇近年来,随着人工智能技术发展,机器人迎来最好的发展时期。在世界工厂有超过270万台工业机器人在运行,该数据来自国际机器人联合会IFR。主要得益于智能生产与自动化推……冷库中标后技术要求及售后服务1。冷库技术培训中标供应商应结合设备安装、调试等阶段,同步地免费对采购人的技术人员就有关系统安装、维护、操作使用等方面进行现场技术培训,使受训人员能熟练掌握所有的安装测试……生活小记1背景:景区内的三乙医院,因此医院的建筑限高,最高建筑是7楼~也因此医院有些楼房较老较破~本人医院小螺丝钉一枚,科室存在于老破房内,但大家生活和谐,相处愉快。据说事情发生在……属于年轻人的OPPOEncoAir,均衡无短板的入门级TWS真无线这个品类的耳机,它是属于年轻人的。我问过一些朋友,他们给长辈推荐真无线的努力,很多都是以失败而告终的老人家的思维很淳朴,他们大多觉得这东西又分三个零件看着就会容易丢……从这几个方面入手,教你如何应对以后的就业形势学习是我们的头等大事,其实我们想要学习好,归根结底都是想要选择一个好的工作,能够站在更好的平台以更高的眼光来看待生活。其实良好的生活习惯、正确的三观、积极乐观的性格,也都会使我……值得被吹爆的大兴机场,正引领全新DIY值机方式普及要说去年的热点话题新闻,大兴机场必定位列其中。自去年于正式通航后,集结众多先进黑科技的北京大兴国际机场,成为北京的新晋地标建筑,亦晋升为国际重要机场枢纽代表之一。与之而来的是,……顺应可持续发展战略,是时候关注工业用电节能问题了电能作为生活、经济发展的重要能源,是人类活动持续、有效进行的基础保障。按照国家电网公司根据用户用电性质的分类,用电可以分为:居民生活用电、一般工商业用电、大工业用电、农业生产用……从二类医疗器械开始,触控一体机这个检测要求高了起来智慧医疗的蓬勃发展,让医疗智能化成为了当前行业的主要发展方向,这也使得众多与医疗智能化相关联的产业得到全新的发展机遇,智能硬件产业便是其一。而在许多医疗器械设备中,都需要触控显……鼠标怎么选?适合自己的最重要二十世纪以来,无论是办公还是娱乐,人们都越来越离不开电脑了,自然而然的,也越来越离不开鼠标。生活中,许多人对外设产品不了解,所以总是买不到适合自己的产品,使用之后不是握着不舒服……助力智能螺丝机机器人应用,工业一体机加速柔性智能制造推行随着我国紧固件市场规模将继续保持上升,据公开数据显示,2019年中国紧固件的总体市场规模将达到1380亿元,并持续呈增长趋势。加上柔性智能制造的需求,国内紧固件智能制造发展,正……工业平板电脑在制造业数字化改造中的应用体现工业平板电脑在制造业领域应用广泛,随着制造业数字化和自动化浪潮的到来,工业平板电脑也迎来了新的发展机遇。一个常规化的制造业工厂改造成数字化、自动化模式,这其中需要几步?抛……
今年春节人们爱吃啥?京东到家报告沙拉意面销量增速猛农历小年,京东到家数据研究院发布《2021春节年货消费趋势报告》(以下简称《报告》),达达集团旗下本地即时零售平台京东到家数据(1月16日至2月4日)显示,自1月16日京东到家……Tomcat架构初识整体架构补充一下tomcat和jdk对应关系规范JDK版本6。X7。X8。X8。5。X9。XJDK5。06。0……来自大学学长的42条衷心建议1、不要微信深夜聊天。不要带iPad去图书馆。不要开着手机上课。太相信自己的自制力会让你输得很惨。2、最好别企图在宿舍里学习。因为总有某个舍友天天在寝室堕落,还看不惯努力……ToB品牌应如何制定营销策略,关键点在何处?ToB品牌就是,面向行业或者面向商家的商业品牌,比如1688提供商业端的批发与工厂订单,而天猫淘宝则直接面向消费者。前者是ToB,后者是ToC。通常来说,这里更多需要销售……如何设置wifi密码才不会被别人破解?如何设置wifi密码才不会被别人破解WiFi的安全类型(加密方式)请选择WPA2、WPA2WPA混合;目前有些路由器已经支持最新的WPA3加密,如果你的路由器已经支持,请……港口堵塞加剧,全球主要港口都受到了波及?今年的海运业似乎没有那么平静,有太多因素困扰着他们。譬如中国。美国、新加坡等地供应链断层、运费飙升、船只不足,再加上疫情的影响,让港口的堵塞愈加显现。我们先来看看中国的数……五一想在家快乐追剧痛快游戏?华为路由AX3解决家庭WiFi三小长假来临,很多朋友选择宅在家。也许是与家人一起追剧,也许是自己独享安静时光。但无论如何,好的家庭WiFi网络环境都是必须的。否则,就会出现各种尴尬:全家在客厅追剧的时候,但是……精致国风电竞椅,不来一起了解一下?迪锐克斯Craft电竞椅体大家好,我是南北桃源对于像我这样天天坐在电脑前的人来说,一把舒服的电脑椅带来的不仅仅是坐的时候舒服,也可以减少久坐后所带来的腰酸背疼的感受。目前市面上主流的电脑椅,……汽车的扭矩到底是什么?加速性能是由功率决定还是扭矩记着早些年前,朋友们聊车只会盯着功率有多高来说事,而随着我国汽车业的兴起,汽车逐渐的走入每个百姓的家庭,我们对车的理解与看法也在悄然的发生改变!如今似乎谈及车子的加速度我们只会……名门修谱家谱能够保存至今的家族,更应该好好传承家谱家谱一词,50、60后的人都很熟悉,但对于70、80后来说,就显得有些陌生,而90甚至00后,很多连家谱为何物都不太了解。这就是家谱的现状,说严重一点,家谱作为一个家……13。68万有1。5T8AT,定位运动加速却不行,问题出在哪福克斯的英文名FOCUS,字面上就是焦点。当年的福克斯,确实是运动紧凑型轿车市场的焦点。这位曾经的销量王,现在却名落孙山,而对手们却过得风生水起。13。68万有1。5T8AT,……火遍娱乐圈的氛围感,这8位明星轻松美出圈氛围感一词已然成为了娱乐圈新晋出圈,氛围感拉满也成为了夸人的流行用语。其实,氛围感美人原本是指抛开外貌长相不论,通过环境氛围、衣着打扮、动作形态等多重元素,营造出极具吸引力和故……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网