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

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

源码:

import os
import cv2def get_video_duration(video_path1):   # 要先pip install opencv-python, 再在文件开头 import cv2video = 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 duration11if __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) + p4vedio_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) + p4print(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,回车

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部