前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3利用ffmpeg针对视频进行一些操作

Python3利用ffmpeg针对视频进行一些操作

作者头像
用户9127725
发布2022-08-08 08:51:55
7750
发布2022-08-08 08:51:55
举报
文章被收录于专栏:刘悦的技术博客

    FFmpeg是个啥?    

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。

    首先去官网https://www.ffmpeg.org/download.html下载windows下的压缩包

    解压缩后,配置一下环境变量

输入命令查看版本

代码语言:javascript
复制
ffmpeg -version

安装ffmpeg的python扩展,该扩展可以让你直接在python脚本中直接调用,而不需要单独运行命令

代码语言:javascript
复制
pip install ffmpeg-python

需要注意一点的是,有的情况调用该库会报错,这时需要将python安装目录下Lib文件夹的subprocess.py文件中大概656行中的shell参数改为True

获取视频详细信息

代码语言:javascript
复制
import ffmpeg

info = ffmpeg.probe("/xxx/xxx/test.mp4")

也可以只提取一些重要信息,比如视频时长,分辨率,宽高等

代码语言:javascript
复制
info = ffmpeg.probe(str(file))
vs = next(c for c in info['streams'] if c['codec_type'] == 'video')
self.duration_secs = float(vs['duration'])
self.format = info['format']['format_name']
self.codec_name = vs['codec_name']
self.width = vs['width']
self.height = vs['height']
self.num_frames = vs['nb_frames']

提取视频缩略图

代码语言:javascript
复制
def get_frames_by_times():
    times = [5]
    for time in times:
        input_file = '/Users/didi/Desktop/ffmpeg/test.mp4'
        output_file = '/Users/didi/Desktop/ffmpeg/image/image-' + str(time) + '.jpg'
        out, err = (
            ffmpeg
                .input(input_file, ss=time)
                .output(output_file, vframes='1', f='image2')
                .run(quiet=False, overwrite_output=True)
        )
        if out == b'':
            print('do nothing')

将视频的片段提取为动图

代码语言:javascript
复制
ffmpeg -ss 00:00:03 -t 3 -i Test.mov -s 640x360 -r  15  dongtu.gif
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档