IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python使用ffmpeg去掉视频片头和片尾 -> 正文阅读

[Python知识库]python使用ffmpeg去掉视频片头和片尾

python使用ffmpeg去掉视频片头和片尾

需要自己得到视频的片头和片尾时长;并且设置好视频文件的名称。
关于ffmpeg的配置及操作可看ffmpeg配置环境和测试ffmpeg的基本使用python操作ffmpeg

import os
import time
import subprocess

# 按创建文件的时间顺序重命名文件,文件夹内文件要有.后缀
def renameFiles(dirPath):
    list = []
    # 获得文件名列表
    files = os.listdir(dirPath)
    # 获得名称带时间戳的新文件名列表
    for filename in files:
        # 获得文件的最后修改时间
        # createTime = os.path.getmtime(dirPath + filename)
        # 获得文件创建时间
        createTime = os.path.getctime(dirPath + filename)
        # 将最后修改时间戳作为文件名的前缀,得到新的文件名,加入列表
        list.append(str(int(createTime)) + '-' + filename)
    # 重新给列表排序,这次所有文件按创建时间排序了
    list = sorted(list)
    # 遍历创建时间戳为序号
    for i in range(len(list)):
        # 获得原先的文件名
        # print(list[i]) # 1614387291-01.jpg
        oldName = list[i].split('-')[1]
        # 获取文件后缀
        suffix = list[i].split('.')[1]
        newName = '0' + str(i + 1) + '.' +  suffix
        print(oldName,'-->',newName)
        # 重命名文件
        os.rename(dirPath + oldName, dirPath + newName)

# 获取视频时长
def get_video_duration(video_path: str):
    ext = os.path.splitext(video_path)[-1]
    if ext != '.mp4' and ext != '.avi' and ext != '.flv':
        raise Exception('format not support')
    ffprobe_cmd = 'ffprobe -i {} -show_entries format=duration -v quiet -of csv="p=0"'
    p = subprocess.Popen(
        ffprobe_cmd.format(video_path),
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        shell=True)
    out, err = p.communicate()
    duration_info = float(str(out, 'utf-8').strip())
    return int(duration_info)

# 删除文件
def delete_av(path):
    if os.path.exists(path):
      os.remove(path)
      print('yes')
    else:
      print("The file does not exist")

# 将视频切割
def video_cut(i,ss,t):
    cmd = "ffmpeg -ss " + f'{ss}' + " -t " + f'{t}' + " -accurate_seek -i F:\\大明王朝1566\\0" + \
          f'{i}' + ".mp4 -codec copy -avoid_negative_ts 1 F:\\大明王朝1566\\" + f'{i}' + ".mp4"
    re = os.system(cmd)
    time.sleep(1)
    if re == 0:
        print('成功')
    else:
        print('失败!!!!!!!!!!!!!!!!!!')

# 将mp4转换为ts文件,可不用
def mp4_ts(i):
    cmd = "ffmpeg -i C:\\video\\" + f'{i}' + ".mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb C:\\video\\" + f'{i}' + ".ts"
    re = os.system(cmd)
    time.sleep(1)
    if re == 0:
        print('转换成功')
    else:
        print('转换失败!!!!!!!!!!!!!!!!!!')

# mp4或ts文件合并为一个mp4文件
def mp4():
    cmd = "ffmpeg -f concat -i F:\\大明王朝1566\\list.txt -c copy C:\\video\\output.mp4"
    re = os.system(cmd)
    time.sleep(1)
    if re == 0:
        print('合并成功')
    else:
        print('合并失败!!!!!!!!!!!!!!!!!!')

if __name__ == '__main__':
    # renameFiles("H:\\图片\\wpcache\\srvsetwp\\")
    for index in range(1,47):
        path = 'F:\\大明王朝1566\\0'+ f'{index}' +'.mp4'
        # t = get_video_duration(path) - (片头时长+片尾)+ 2
        t = get_video_duration(path) - 308 # 减去片头和片尾 + 2s
        # 参数:视频文件名,开始剪切时间(s),剪切的时间长度
        video_cut(index,90,t)
        # delete_av('F:\\大明王朝1566\\0'+ f'{index}' +'.mp4')
        print('over')
        time.sleep(2)
        
    # mp4()

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-16 11:18:33  更:2022-05-16 11:19:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 15:28:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计