轻量级前端框架助力开发者提升项目效率与性能
1120
2022-10-01
Python将flv格式转化为avi
开发环境:
python opencv ffmpeg python的相关包
import cv2, subprocess, os, shutil from moviepy.editor import AudioFileClip
思路
音视频分离视频格式通过opencv转化ffmpeg将音视频合并
# encoding=utf8from sys import pathimport cv2, subprocess, os, shutilfrom moviepy.editor import AudioFileClipfrom_path = 'D:/file/'target_path = 'D:/file/target/'mid_flv = "mid.flv"mid_avi = "mid.avi"def video_format(video_name): videoCapture = cv2.VideoCapture(target_path + video_name) # 获得码率及尺寸 fps = videoCapture.get(cv2.CAP_PROP_FPS) size = (int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT))) # 指定写视频的格式, I420-avi, MJPG-mp40 outfile_name = video_name.split('.')[0] + '.avi' videoWriter = cv2.VideoWriter(target_path + outfile_name, cv2.VideoWriter_fourcc('F', 'L', 'V', '1'), fps, size) # 读帧 success, frame = videoCapture.read() while success: # cv2.imshow('isshow',frame) # 显示 # cv2.waitKey(int(1000 / int(fps))) # 延迟 videoWriter.write(frame) # 写视频帧 success, frame = videoCapture.read() # 获取下一帧def autio_format(video_name): my_audio_clip = AudioFileClip(target_path + video_name) my_audio_clip.write_audiofile(target_path + "mid.wav")def video_add_autio(file_name, mp3_file, new_file_name): """ 视频添加音频 :param file_name: 传入视频文件的路径 :param mp3_file: 传入音频文件的路径 :return: """ outfile_name = new_file_name.split('.')[0] + '.avi' print(outfile_name) subprocess.call('ffmpeg -i ' + file_name + ' -i ' + mp3_file + ' -strict -2 -f avi "' + target_path + outfile_name+'"', shell=True)def run(): num = 0 for root, dirs, files in os.walk(from_path): for file in files: if ".flv" in file: shutil.copyfile(from_path + file, target_path + mid_flv) num = num + 1 print("************** 正在转换第 " + str(num) + " 个视频 **********************") format_video(mid_flv, file) os.remove(target_path + mid_flv) os.remove(target_path + mid_avi)def format_video(video_name, file): autio_format(video_name) video_format(video_name) video_add_autio(file_name=target_path + video_name, mp3_file=target_path + 'mid.wav', new_file_name=file)run()
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~