2个应用:视频旋转函数,ts格式视频转mp4格式
import time
import os.path
import glob
ffmpeg = r'C:\software\ffmpeg-4.3.1-win64-static\bin\ffmpeg.exe'
""" 注意文件名、路径中不能有空格,否则会转换失败 """
def vedio_rotate(filename, rotate=1):
"""
单个视频文件旋转,保存在同一文件夹
:param str filename: 待旋转视频文件路径
:param int rotate: 旋转方式,见‘transpose参数’常用1,2
ffmpeg -i input.mp4 -vf transpose=2 -y output.mp4
transpose参数:0逆时针90度再垂直翻转(上下),1顺时针90度
2逆时针90度,3顺时针90度再垂直翻转(上下)
"""
start_time = time.time()
# 旋转后视频文件名称
output = os.path.splitext(filename)[0] + '_rotate' + os.path.splitext(filename)[1]
cmd = ffmpeg + " -i " + filename + " -vf transpose={} -y ".format(rotate) + output
os.system(cmd)
end_time = time.time()
print('视频旋转完成,耗时:{}秒'.format(end_time - start_time))
def ts_to_mp4(filepath):
"""
将文件夹下所有ts格式视频文件转换为mp4格式
:param str filepath: 待转换格式的ts视频文件所在文件夹
"""
#简易用法
#file = r'E:\media\TS\视频.TS'
#output = r'E:\media\TS\视频.mp4' # 没有路径则默认保存在python文件夹
#cmd = ffmpeg + " -i " + file + " -c copy " + output
#os.system(cmd)
#print('格式转换完成')
#ts_list = glob.glob(filepath +'\\*.TS') # *前可指定前缀
ts_list = []
for x in ['*.TS','*.ts']: # 2种ts格式
ts_list.extend(glob.glob(filepath +'\\' + x)) # 将列表元素追加到列表中
for ts in ts_list:
output = os.path.splitext(ts)[0] + '.mp4'
cmd = ffmpeg + " -i " + ts + " -c copy " + output
os.system(cmd)
print('格式转换完成')
if __name__ == '__main__':
#filename = r'E:\media\视频.mp4'
#vedio_rotate(filename, 2)
ts_path = r'E:\media\TS'
ts_to_mp4(ts_path)