能这么做的前提是片头长度固定(通常都满足),片尾长度固定(只是为了减去一个固定的值方便而已)
源码:
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,回车
文章来源:https://www.toymoban.com/news/detail-811089.html
文章来源地址https://www.toymoban.com/news/detail-811089.html
到了这里,关于ffmpeg批量去除视频片头跟片尾的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!