python给视频添加声音_使用python批量调整视频声音

今天来研究python中moviepy模块的用途

近来有大量处理视频的需求,

常会碰到一个问题是下载的视频音量过小,

会需要将它调大声,

虽然有在线工具VideoLouder可以免费调整视频音量大小,

但毕竟若量很大的话一个一个上传视频也是挺麻烦的事情,

因此决定再用程序帮忙解决。

使用教学

基础程序

调整一个视频音量的代码如下:

from moviepy.editor importVideoFileClip,concatenate_videoclips

clip= VideoFileClip(“1.mp4”)#获取视频1.mp4(视频需与程序置于同一文件夹)

newclip= clip.volumex(5)#将音量调整为5倍

newclip.write_videofile(“out.mp4”)#输出影片名为out.mp4

但实测会出现错误AttributeError: 'NoneType' object has no attribute 'stdout',

经研究后,似乎是moviepy版本的问题,

最新的版本为1.0.1,

可以于anaconda prompt中下指令pip list查看自己所有已安装的模块版本。

实测要安装moviepy版本1.0.0才可正常使用,

在anaconda prompt使用pip install moviepy==1.0.0指令即可运作上述代码。

批量修改视频音量

想要一次修改多个视频的音量,

小马的代码如下,

首先我将所有欲修改的视频放入当前程序路径下的music文件夹中,

这边关键会用到python内置模块os,

os.getcwd()是取得当前程序的工作路径

os.chdir()可以改变当前程序的工作路径

os.listdir()可以取得指定路径下的所有档案名称

importosfrom moviepy.editor importVideoFileClip, concatenate_videoclipsdefbatch_volumex(path, x):#函数功能:在指定路径下,将该文件夹的视频声音调为x倍

origin_path =os.getcwd()

os.chdir(path)for fname inos.listdir():

clip=VideoFileClip(fname)

newclip=clip.volumex(x)

newclip.write_videofile("new_"+fname)

os.chdir(origin_path)

path= './music'batch_volumex(path,5)

这支程序可以将music文件夹下的所有影片的音量调为5倍,

并将影片名称前加“new_”字串输出

(注:若原视频声音很小,实测音量大概要调3~5倍才会有感)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用Pillow库来批量添加水印,具体步骤如下: 1. 安装Pillow库:在命令行中执行 `pip install Pillow` 进行安装。 2. 编写代码:可以参考下面的示例代码,进行修改和适应自己的需求。 ```python from PIL import Image, ImageDraw, ImageFont import os # 要添加水印的文件夹路径 folder_path = 'path/to/folder' # 水印文字和字体大小 watermark_text = 'watermark' font_size = 30 # 水印颜色和透明度 watermark_color = (255, 255, 255, 128) # 遍历文件夹中的所有图片文件 for filename in os.listdir(folder_path): if filename.endswith('.jpg') or filename.endswith('.png'): # 打开图片并添加水印 image_path = os.path.join(folder_path, filename) image = Image.open(image_path).convert('RGBA') watermark = Image.new('RGBA', image.size, (0, 0, 0, 0)) draw = ImageDraw.Draw(watermark) font = ImageFont.truetype('arial.ttf', font_size) text_width, text_height = draw.textsize(watermark_text, font) x = image.width - text_width - 10 y = image.height - text_height - 10 draw.text((x, y), watermark_text, font=font, fill=watermark_color) image_with_watermark = Image.alpha_composite(image, watermark) # 保存图片 image_with_watermark.save(image_path) ``` 3. 运行代码:在命令行中执行 `python watermark.py` 运行代码,并等待程序执行完成。 注意:在运行代码前,需要将代码中的 `folder_path` 修改为要添加水印的文件夹路径,将 `watermark_text` 修改为要添加的水印文字,将 `font_size` 修改为水印的字体大小,将 `watermark_color` 修改为水印的颜色和透明度。另外,代码中使用的是默认的字体 `arial.ttf`,如果你想要使用其他字体,需要将字体文件放到代码所在的目录下,并将字体文件名修改为相应的名称。 ### 回答2: 在Python批量添加水印可以通过使用PIL(Python Imaging Library)库来实现。以下是一个简单的示例代码: ```python from PIL import Image from PIL import ImageDraw from PIL import ImageFont import os def add_watermark(input_dir, output_dir, watermark_text): # 遍历输入目录中的所有图片文件 for file_name in os.listdir(input_dir): if file_name.endswith('.jpg') or file_name.endswith('.png'): # 打开图片文件 input_path = os.path.join(input_dir, file_name) image = Image.open(input_path).convert('RGBA') # 创建水印文本 watermark = Image.new('RGBA', image.size, (255, 255, 255, 0)) draw = ImageDraw.Draw(watermark) font = ImageFont.truetype('arial.ttf', 36) text_width, text_height = draw.textsize(watermark_text, font=font) text_x = image.width - text_width - 10 text_y = image.height - text_height - 10 draw.text((text_x, text_y), watermark_text, fill=(128, 128, 128, 128), font=font) # 将水印叠加到原始图片中 watermarked = Image.alpha_composite(image, watermark) # 保存水印图片 output_path = os.path.join(output_dir, file_name) watermarked.save(output_path) ``` 使用以上代码,你可以将水印文本添加到指定目录中的所有图片上,生成带有水印的图片并保存到输出目录中。你只需要指定输入目录、输出目录以及要添加的水印文本即可。注意,你需要提前安装PIL库,并将所需的字体文件(例如arial.ttf)放在与你的Python脚本相同的目录下。 ### 回答3: 使用Python批量添加水印可以借助第三方库进行操作。下面我以使用Pillow库为例来解释: 1. 首先,确保你已经安装了Pillow库。可以使用以下命令安装:pip install pillow。 2. 导入Pillow库和其他需要的库:from PIL import Image, ImageDraw, ImageFont, ImageEnhance 3. 批量添加水印的主要步骤如下: - 遍历需要加水印的图片,可以使用os库的相关函数来获取图片文件列表。 - 加载水印图片和背景图片:watermark_img = Image.open('水印图片路径'),background_img = Image.open('背景图片路径')。 - 调整水印的大小:可以使用watermark_img.thumbnail()函数来调整水印图片的大小。 - 在背景图片上添加水印:使用ImageDraw库的text()函数,在background_img对象上进行绘制。 - 保存加了水印的图片:使用background_img对象的save()函数将图片保存到指定目录下。 4. 示例代码如下: ```python from PIL import Image, ImageDraw, ImageFont import os # 加载水印图片和背景图片 watermark_img = Image.open('水印图片路径') # 调整水印的大小 watermark_img.thumbnail((100, 100)) # 自定义水印大小 watermark_width, watermark_height = watermark_img.size # 获取所有需加水印的图片文件列表 image_dir = '图片文件夹路径' image_files = [file for file in os.listdir(image_dir) if file.endswith(('.jpg', '.png'))] # 设置水印文字的样式 watermark_text = "水印文字" watermark_font = ImageFont.truetype('字体文件路径', 30) # 自定义字体和大小 # 遍历图片列表,添加水印 for image_file in image_files: image_path = os.path.join(image_dir, image_file) background_img = Image.open(image_path) # 在背景图片上添加水印 draw = ImageDraw.Draw(background_img) draw.text((background_img.size[0] - watermark_width, background_img.size[1] - watermark_height), watermark_text, fill=(255, 255, 255), font=watermark_font) # 保存加了水印的图片 output_dir = '保存加水印图片的文件夹路径' output_path = os.path.join(output_dir, image_file) background_img.save(output_path) background_img.close() ``` 通过以上步骤和示例代码,你可以使用Python批量添加水印到多张图片中。请确保提供正确的水印图片路径、背景图片路径、字体文件路径和保存加水印图片的文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值