python3多线程批量去除电视剧的片头片尾

  
简介h5>   <李>下载的电视剧经常遇到片头和片尾,有的片头还有广告,比较厌烦,所以笔者就写了个脚本,使用python3, ffmpeg批量多线程去除了片头和片尾,这里针对的是单部多集电视剧的片头,片尾,片头片尾的时间比较相似李   <李>针对多部多集的电视剧,可以通过excel,或者构建字典的方式解决。   
代码如下:
     
 <代码> # !/usr/bin/env python
  # - * -编码:utf - 8 - *
  ”“”
  @author:艾克赵
  @file: cut_media_all.py
  @time:下午火灾
  ”“”
  进口操作系统
  进口再保险
  导入子流程
  从进口十进制小数
  从多处理导入池
  
  路径=r/volume1/电影/201903/t1/?
  new_path=r/volume1/电影/201903/t2/?
  如果不是os.path.exists (new_path):
  os.mkdir (new_path)
  其他:
  打印(new_path +好!)
  
  #获取视频时的持续时间长长宽
  def get_video_length(文件):
  过程=子流程。Popen ([‘ffmpeg’,‘我’,文件],stdout=子流程。管,stderr=subprocess.STDOUT)
  stdout, stderr=process.communicate ()
  打印(stdout)
  pattern_duration=re.compile(“时间:\ s (\ d + ?): (\ d + ?): (\ d + \ \ d + ?),”)
  pattern_size=re.compile (" \ s (\ d {3、4}) x (\ d {3、4}),”)
  匹配=re.search (pattern_duration stdout.decode (utf - 8))
  大?re.search (pattern_size stdout.decode (utf - 8))
  如果尺寸:
  大?size.groups ()
  print(大小)
  如果匹配:
  匹配=matches.groups ()
  打印(匹配)
  小时=小数(匹配[0])
  分钟=小数(匹配[1])
  秒=小数(匹配[2])#处理为十进制,避免小数点报的错
  总=0
  总+=60 * 60 *小时
  总+=* 60分钟
  +=总秒
  宽度尺寸=[0]
  高度尺寸=[1]
  返回{
  “总”:,
  “宽度”:宽度,
  “高度”:高度
  }
  
  def cutVideo(曾经繁荣、文件、端点、newFile中):
  命令=[‘ffmpeg’,‘s’,曾经繁荣,“我”,文件,‘-acodec’,‘复制’,‘-vcodec’,‘复制’,‘t’,
  端点,newFile中)
  subprocess.call(命令)
  
  def millisecToAssFormat (t): #取时间
  s=t % 60
  m=t//60
  如果t & lt;3600:
  h=00
  其他:
  h=t//3600
  返回“% 2 d: % 2 d: % 2 d ' % (h, m s)
  
  def主要(文件):
  #在os.listdir文件(路径):
  #打印(文件)
  videoInfo=get_video_length(文件)#视频信息
  打印(videoInfo)
  如果videoInfo:
  时间=videoInfo.get(总)#时长秒
  曾经繁荣=71 #剪辑有片头片尾的视频切掉前71年代120年代后
  曾经繁荣=millisecToAssFormat(曾经繁荣)
  端点=- 120 # 120秒时间
  端点=millisecToAssFormat(端点)
  new_File=os.path。加入(new_path文件)#创建生成的文件路径+文件名
  打印(new_File、端点)
  cutVideo(曾经繁荣、文件、端点new_File)
  
  if __name__==癬_main__”:
  # main ()
  文件=[在os.listdir申请文件(路径)如果os.path.isfile(文件)==True)
  池=池()
  池。地图(主要文件)
  pool.close ()
  pool.join ()
   
  
启动命令h5>   <李>由于电视剧集数比较多,我这里使用了后台运行      
 <代码> nohup python cut_media_all。py祝辞filelog。txt 2祝辞,1, 
  
      <李>多线程对帧处理李   
  
 <代码>=7888 fps=0.0 q=-1.0帧大?69120 kb时间=00:05:12.96比特率=1809.3 kbits/s的速度=623 x
  帧大?9849 fps=0.0 q=-1.0=77312 kb时间=00:06:30.25比特率=1622.9 kbits/s的速度=746 x
  ?18599 fps=18494 q=-1.0=134656 kb大小时间=00:12:21.41比特率=1487.8 kbits/s的速度=737 x
  ?19418 fps=16222 q=-1.0=138752 kb大小时间=00:12:53.01比特率=1470.4 kbits/s的速度=646 x
  ?23712 fps=15748 q=-1.0=171008 kb大小时间=00:15:45.94比特率=1481.0 kbits/s的速度=628 x
  ?26403 fps=15527 q=-1.0=205312 kb大小时间=00:17:32.41比特率=1598.1 kbits/s的速度=619 x
  ?32330 fps=16119 q=-1.0=231168 kb大小时间=00:21:30.64比特率=1467.3 kbits/s的速度=643 x
  ?35540 fps=11426 q=-1.0=253696 kb大小时间=00:23:39.07比特率=1464.5 kbits/s的速度=456 x
  ?33771 fps=10233 q=-1.0=257792 kb大小时间=00:22:27.15比特率=1567.6 kbits/s的速度=408 x
  ?53980 fps=14772 q=-1.0=400896 kb大小时间=00:35:56.65比特率=1522.8 kbits/s的速度=590 x
  ?47614 fps=12529 q=-1.0=354816 kb大小时间=00:31:40.86比特率=1529.1 kbits/s的速度=500 x
  ?63413 fps=15833 q=-1.0 Lsize=491071 kb时间=00:42:13.99比特率=1587.6 kbits/s的速度=633 x  
  

python3多线程批量去除电视剧的片头片尾