0

我正在使用 ffmpeg 编写一个简单的脚本,以减小视频的大小并为视频添加水印,然后将最终输出移动到压缩文件夹中......这是我的脚本。

压缩有效,水印有效,但我遇到的问题是最终输出放置在根文件夹中,而不是压缩文件夹中......下面是我的文件夹结构和我的脚本

文件夹结构

   rootfolder
    |
    |--media
       |--vids
          |--(video files, mov, mp4s)..
       |--compressed
    |--encode.py

脚本 (encode.py) 文件

import os    
import subprocess
from pathlib import Path


dir_path = os.path.dirname(os.path.realpath(__file__))    
vidfile = dir_path + '/media/vids/mv1.mov'    
watermark = dir_path + '/media/watermark.png'
compressed = str(Path.cwd() / '/media/compressed/')

# 1. compress the video and store it in the media out folder

media_out = str(dir_path + "/compressed_mv1s.mov").replace(" ", "\\ ") 
subprocess.run("ffmpeg -i " + vidfile.replace(" ", "\\ ") +
               " -vcodec libx264 -crf 22 " + media_out, shell=True)  

#2.add watermark to the video and move it to the compressed folder 

media_watermarked = str(compressed + '/w_mv1.mov').replace(" ", "\\ ")
subprocess.run("ffmpeg -i " + media_out + " -i " + watermark +
               " -filter_complex \"overlay=main_w-(overlay_w+10) : main_h-(10+overlay_h)\" " + media_watermarked, shell=True)

总之,压缩视频作品,添加水印作品,但最后一行,错误来自media_watermarked变量,我不确定我做错了什么,但它没有正确解析文件夹,将最终输出移动到文件夹..这是我得到的错误

在此处输入图像描述

另外,我如何同时运行两个 ffmpeg 命令来压缩视频并一次添加水印而不单独执行。谢谢。

4

0 回答 0