社区编辑申请
注册/登录
Python小工具:五分钟处理完一天的工作量,真香
开发 后端
今天给大家分享了一个 python 处理视频的不错的库,希望可以给大家的工作/副业带来一些效率上的提升。

简介

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技术
相关推荐

2022-06-12 06:48:34

2022-06-05 21:09:47

Python办公自动化

2022-06-27 17:46:53

PythonFlask

2022-06-28 12:35:21

DockerPython

2022-06-21 09:02:49

python技巧

2022-06-17 18:49:25

pythonexcel

2022-06-27 19:01:04

Python应用程序数据

2022-06-15 08:25:07

Python天气数据可视化分析

2022-06-24 10:16:59

Python精选库

2022-06-28 09:34:24

可视化Python代码

2022-05-23 11:13:02

Python工具

2022-06-22 09:56:19

PythonMySQL数据库

2022-06-16 07:32:38

VSCodePython插件

2022-06-17 09:08:27

代码Python内置库

2022-05-11 09:02:27

Python数据库Excel

2022-06-28 09:26:25

Python配置文件

2022-06-28 13:41:07

浏览网页互联网交互Python

2022-06-09 21:34:41

2022-06-15 09:54:51

PythonIDELinux

2022-06-16 16:08:00

Python初学者IDE

同话题下的热门内容

手把手教你用装饰器扩展 Python 计时器吐血推荐17个提升开发效率的“轮子”裁员真能拯救中国互联网?哪些编程语言会在Web 3时代脱颖而出?监控Kubernetes的最佳实践、工具和方法IOC-Golang 的 AOP 原理与应用跨区域、Kubernetes集群运行数据库实践指南并发编程的三大核心问题

编辑推荐

2017年9月编程语言排行榜:Java、C与C++三巨头还能统治排行榜多久?2017年最受欢迎的5个前端框架比较2017年11月编程语言排行榜:脚本语言怎么了?2017年3月编程语言排行榜:Swift首次进入前十最近租房有点烦!技术人如何用Python找到称心如意的“小窝”?
我收藏的内容
点赞
收藏

51CTO技术栈公众号