ffmpeg批量去除视频片头跟片尾

能这么做的前提是片头长度固定(通常都满足),片尾长度固定(只是为了减去一个固定的值方便而已)

源码:

import os
import cv2


def get_video_duration(video_path1):   # 要先pip install opencv-python, 再在文件开头 import cv2
    video = cv2.VideoCapture(video_path1)  # 打开视频文件

    fps = video.get(cv2.CAP_PROP_FPS)  # 获取视频的帧率和总帧数
    total_frames = video.get(cv2.CAP_PROP_FRAME_COUNT)

    duration11 = total_frames / fps  # 计算视频的时长(单位:秒)

    video.release()  # 关闭视频文件

    return duration11


if __name__ == '__main__':
    '''基本信息'''
    test = 'ffmpeg -ss 00:02:00 -i 狂飙'
    p2 = '.mp4 -c copy -t  '
    p3 = '  狂飙-'
    p4 = '.mp4  '
    name = '狂飙'
    path1 = r'E:\老家movie\狂飙'
    vedio_name = []

    list1 = range(38)  # 文件长度
    for i in list1:  # 得到文件绝对路径
        temp_name = path1 + '\\' + name + str(i + 1) + p4
        vedio_name.append(temp_name)

    continue_last_save = []  # 将视频长度返回给个列表
    for i in range(len(list1)):
        duration = get_video_duration(vedio_name[i])
        continue_last_save.append(duration)

    save = []  # 编辑ffmpeg命令
    for j in range(len(continue_last_save)):
        # 这里的269视文件而异,总秒数减去4分29秒可以去掉片尾
        temp = test + str(j + 1) + p2 + str(continue_last_save[j] - 269) + p3 + str(j + 1) + p4
        print(temp)
        save.append(temp)

    for i in range(38):  # 移除原文件
        os.remove(vedio_name[i+1])  # 这里的+3视自己情况更改,i从0开始

    """
    ffmpeg批量处理的话,直接把上面编程得到的ffmpeg命令全部复制到cmd命令窗口中,就可以自动处理,最后一行多复制个换行更方便
    """

基本信息与源码中的下标索引需要自己视待修改视频信息进行更改

当然如果没有把ffmpeg.exe所处目录加到系统环境变量中,那么就需要你把ffmpeg.exe拷贝一份到视频所在文件夹。

文件最后的cmd窗口打开方式:在【视频文件夹】输入cmd,回车

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值