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,回车

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