Git Product home page Git Product logo

ffmpeg's Introduction

ffmpeg python

  • 该项目是使用 python 对 FFmpeg 的类库做了一次封装使用,因最近不搞视频,所以很长时间不维护了,大家可以参照写法,使用 python 构建自己的视频处理服务(Dont forget GPU)。

系统依赖

ffmpeg 3.0 及以上 ffprobe 3.0 及以上 python 3.0 及以上

mac,linux,windows 相应的 gpu 显卡驱动 (使用硬编码时需支持)

ffmpeg安装参见

安装ffmpeg

ffmpeg命令总结

Install

pip install ffmpeg

Use Demo 向视频(指定位置和时间,默认坐标为 0 )添加 n 张图片

from ffmpeg import video

# 输入视频
input_file = "demo.mp4"

# 输出视频
out_file = "demo_out.mp4"

# 图片列表
img_data = [
        {
            "img": "demo1.png",
            "x": "",
            "y": "",
            "str_time": "5",
            "end_time": "15",
        },
        {
            "img": "demo2.png",
            "x": "",
            "y": "",
            "str_time": "20",
            "end_time": "25.5"
        }
    ]

video.ins_img(input_file, img_data, out_file)

Demo 视频添加动图 gif apng 等

from ffmpeg import video

input_file = "demo.mp4"

out_file = "demo_out.mp4"

img_data = {
    "img": "img.apng",
    "x": "20",
    "y": "20",
    "str_time": "2",
    "end_time": "10"
}


video.ins_dynamic_img(input_file, img_data, out_file)

图片处理 图片转 mp4 5: 时长为 5 秒的 mp4

from ffmpeg import image

image.img_trans_video("png/text_%02d.jpg", "5", "out.mp4")

复合模式

from ffmpeg import stream
stream = Stream()
# 输入文件
stream.input(input_file)
# 图片
stream.img("t1.png")
stream.img("t2.png", "10", y=10, str_time=5, end_time=10)
# 动图
stream.img_dynamic("t1.apng", "10", "10", "5", "10")
stream.img_dynamic("t2.gif", x=10, y=10, str_time=5, end_time=9)
# 文字水印
stream.word_water_mark("test1", x="10", y="10", str_time="0", end_time="20", font="ttf.ttf", color="blue")
stream.word_water_mark("test2", x="10", y="10", str_time="0", end_time="20", font="ttf.ttf", color="blue")
# 字幕
stream.subbtitle("tt.srt")
# 显卡加速,该方式目前只适用于 mac 和 navida, 参数size是视频大小,该值越大,越慢
stream.fast("5M")
# 输出文件
stream.out(out_file)
stream.run()

ffmpeg's People

Contributors

jiashaokun avatar wagenrace avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.