Python 官方文档:入门教程 => 点击学习
目录前言一、安装二、subprocess调用三、ffmpy3转码解复用复用拆分成图片四、最后前言 第一次处理视频素材可以手动用剪映来处理,然后再用代码进行自动化处理,不然连朝哪个方向
第一次处理视频素材可以手动用剪映来处理,然后再用代码进行自动化处理,不然连朝哪个方向自动化处理可能都不知道
那清楚处理流程之后,怎么用python来处理视频素材呢?
ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序
使用这个神器,便可以处理各种视频素材内容,极度舒适
下面一行来分享一下如何使用这个神器
首先需要在ffmpeg的官网下载最新版本,不然可能会出现各种奇怪的问题
因为ffmpeg是个命令行工具,所以安装时需要注意将ffmpeg加入环境变量中,安装完之后,可以在终端里输入下面命令查看是否安装成功
ffmpeg -version
因为ffmpeg是命令行工具,可以通过subprocess的调用来使用
先查看使用文档,例如拆分视频文件的命令是:
ffmpeg -i [filename] -ss [starttime] -t [length] -c copy [newfilename]
好了,用 Python 写一个调用:
import subprocess as sp
def cut_video(filename, outfile, start, length=90):
cmd = "ffmpeg -i %s -ss %d -t %d -c copy %s" % (filename, start, length, outfile)
p = sp.Popen(cmd, shell=True)
p.wait()
return
ffmpy3是ffmpeg的python包装器,以可以用这个包来进行处理视频
需要先用pip进行安装
pip install ffmpy3
例如修改文件格式这种操作就可以使用ffmpy3直接输出
import ffmpy3
ff = ffmpy3.FFmpeg(
inputs={'input.mp4': None},
outputs={'output.avi': None}
)
ff.run()
如果同时我们想使用不同的编解码器重新编码视频和音频,在输出文件同时必须指定额外的输出选项:
ff = FFmpeg(
inputs={'input.ts': None},
outputs={'output.mp4': '-c:a mp2 -mpeg2video'}
)
ff.cmd
ff.run()
还可以将文件的音频和视频输出成两个mp4格式的文件
ff = FFmpeg(
inputs={'input.ts': None},
outputs={
'video.mp4': ['-map', '0:0', '-c:a', 'copy', '-f', 'mp4'],
'audio.mp4': ['-map', '0:1', '-c:a', 'copy', '-f', 'mp4']
}
)
ff.cmd
ff.run()
复用就是将输入的mp4文件和mp3文件合成同一个视频文件
这里使用 OrderedDict 来保留输入的顺序,以便它们与输出选项中的流的顺序相匹配:
from collections import OrderedDict
inputs = OrderedDict([('video.mp4', None), ('audio_1.mp3', None), ('audio_2.mp3', None)])
outputs = {'output.ts', '-map 0 -c:v h264 -map 1 -c:a:0 ac3 -map 2 -c:a:1 mp2'}
ff = FFmpeg(inputs=inputs, outputs=outputs)
ff.cmd
ff.run()
处理视频素材内容还需要将视频拆成一张张图片,对图片进行处理,然后再合并成视频
在输出的文件类型改成.png结尾即可
import ffmpy3
ff = ffmpy3.FFmpeg(
inputs={'data.MP4': None},
outputs={'1/%d.png': None}
)
ff.run()
通过ffmpeg处理视频主要还是要了解它的命令用法,可以在官方文档里进行查看
然后再去了解各种热门视频的模版,自动化生成自己想要的视频指日可待
到此这篇关于Python 如何利用ffmpeg 处理视频素材的文章就介绍到这了,更多相关Python ffmpeg 视频素材处理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Python如何利用ffmpeg处理视频素材
本文链接: https://lsjlt.com/news/158546.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0