opencv+python+ffmpeg为视频添加文字滚动动画效果代码

代码语言:python

所属分类:其他

代码描述:opencv+python+ffmpeg为视频添加文字滚动动画效果代码,先分解每一帧成图片,然后在每一帧计算动画出现的文字位置,最后ffmpeg合成完整视频。

代码标签: opencv python ffmpeg 视频 添加 文字 滚动 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
#pip install python-opencv
import cv2
import numpy as np
import subprocess
import os
import sys

def add_text_animation(video_path, output_path, text):
    # 打开视频
    cap = cv2.VideoCapture(video_path)
    
    # 获取视频属性
    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
    fps = cap.get(cv2.CAP_PROP_FPS)
    
    # 检查 fps 是否有效
    if fps <= 0:
        fps = 30  # 如果无法获取有效的 fps,使用默认值 30
    
    print(f"视频属性: 宽度={width}, 高度={height}, FPS={fps}")
    
    # 创建临时目录来存储帧
    temp_dir = 'temp_frames'
    os.makedirs(temp_dir, exist_ok=True)
    
    # 设置初始文字位置
    text_position = [width, height // 2]
    
    frame_count = 0
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break
        
        # 更新文字位置
        text_position[0] -= 5  # 每帧向左移动5个像素
        if text_position[0] < -len(text) * 20:  # 当文字完全移出画面时
            text_position[0] = width  # 重置到右侧
        
        # 在帧上添加文字
        cv2.putText(frame, text, tuple(text_position), cv2.FONT_HERSH.........完整代码请登录后点击上方下载按钮下载查看

网友评论0