文章插图
作者:豆豆
来源:Python 技术
前几天写了一篇 自动化处理短视频素材 的文章,有小伙伴说直接用 python 的 ffmpeg 库更香,刚好今天领导安排了一个给视频批量加水印的任务,咱就拿它来试试水 。
简介FFmpeg 是一套强大的音视频处理程序,也是很多音视频软件的基础,事实上,FFmpeg 已经成为业界音视频处理的标准了 。但命令行使用 FFmpeg 是有一定学习成本的,而 ffmpeg-python 库则很好的解决了这个问题 。
通过 pip 简单安装之后即可在 python 代码中使用 ffmpeg 。
pip3 install ffmpeg-python
获取视频信息path = 'main.mp4'probe = ffmpeg.probe(path)video_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None)width = int(video_stream['width'])height = int(video_stream['height'])print(width, height)
我们可以通过 stream 来获取视频的一些基础信息,比如尺寸、时长、帧率等 。镜像处理
# 左右镜像ffmpeg.input(path).hflip().output('output.mp4').run()# 上下镜像ffmpeg.input(path).vflip().output('output.mp4').run()
可以简单的理解为英文单词横向(horizontal)和纵向(vertical)的首字母缩写 。添加水印
main = ffmpeg.input(path)logo = ffmpeg.input('logo.png')ffmpeg.filter([main, logo], 'overlay', 0, 500).output('out.mp4').run()
这条命令的意思是,将 logo 水印图片放置在 main 视频的上方,坐标为(0,500) 。可以把视频的左上角理解为原点(0,0)的位置,从原点向右和向下分别表示 x 轴和 y 轴 。当然,如果把 logo 做的足够大,比视频还要大,然后换一下双方的位置,那就会变成将视频放到 logo 上了,其实相当于给视频加了一个背景图 。
ffmpeg.filter([logo, main], 'overlay', 0, 500).output('out.mp4').run()
视频截取ffmpeg.input(path).trim(start_frame=10,end_frame=20).output('out3.mp4').run()
这条命令看起来就很容理解,start_frame 和 end_frame 分别代表起始结束帧 。视频拼接
base = ffmpeg.input(path)ffmpeg.concat(base.trim(start_frame=10, end_frame=20),base.trim(start_frame=30, end_frame=40),base.trim(start_frame=50, end_frame=60)).output('out3.mp4').run()
视频拼接使用 concat 函数即可 。总结今天给大家分享了一个 python 处理视频的不错的库,希望可以给大家的工作/副业带来一些效率上的提升 。
【Python小工具:五分钟处理完一天的工作量,真香】
推荐阅读
- 自媒体运营的“六大工具”操作更高效,收入扩大化
- 正种小山红茶泡法,斯里兰卡红茶怎么挑选
- 泡红茶用什么紫砂壶好,泡红茶的工具名称
- 正山小种红茶排行榜,武夷山正山小种红茶冲泡视频
- Centos8/Alma8 网络配置工具nmcli使用说明
- 吃猪小排上火吗?猪小排的营养价值有哪些?
- 橘普红茶,小柠红茶怎么泡
- 泡红茶的工具名称,红茶用什么壶泡
- 红茶包怎么泡图解,小儿七珍茶的作用和功效
- 你对环保小贴士了解多少