本文目录一览:
ffmpeg-python中文文档(三)——API参考
表示上游节点的传出边缘;可以用来创建更多的下游节点。
输入文件 URL (ffmpeg -i option)
在一个 ffmpeg 命令行中包含所有给定的输出
输出文件地址
不询问就覆盖输出文件(ffmpeg -y 选项)
在指定文件上运行 ffprobe 并返回输出的 JSON 表示。
构建用于调用 ffmpeg 的命令行。
构建要传递给 ffmpeg 的命令行参数。
为提供的节点图调用 ffmpeg 。
参数
为提供的节点图异步调用 ffmpeg。
参数
例子
运行和流式输入:
运行并捕获输出:
使用 numpy 逐帧处理视频:
通过重新混合颜色通道来调整视频输入帧。
连接音频和视频流,将它们一个接一个地连接在一起。
筛选器适用于同步视频和音频流的片段。所有段必须具有每种类型的相同数量的流,这也是输出时的流数。
参数
裁剪输入视频。
参数
在输入图像上绘制一个彩色框。
参数
使用 libfreetype 库从视频顶部的指定文件中绘制文本字符串或文本。
要启用此过滤器的编译,您需要使用 --enable-libfreetype . 要启用默认字体回退和字体选项,您需要使用 --enable-libfontconfig . 要启用 text_shaping 选项,您需要使用 --enable-libfribidi
参数
· box - 用于使用背景颜色在文本周围绘制一个框。该值必须是 1(启用)或 0(禁用)。框的默认值为 0。
· boxborderw – 使用 boxcolor 设置要在框周围绘制的边框宽度。boxborderw 的默认值为 0。
· boxcolor - 用于在文本周围绘制框的颜色。有关此选项的语法,请查看 ffmpeg-utils 手册中的“颜色”部分。 boxcolor 的默认值为“white”。
· line_spacing – 使用 box 设置要在框周围绘制的边框的行间距(以像素为单位)。line_spacing 的默认值为 0。
· borderw – 使用边框颜色设置要在文本周围绘制的边框宽度。边框的默认值为 0。
· bordercolor – 设置用于在文本周围绘制边框的颜色。有关此选项的语法,请查看 ffmpeg-utils 手册中的“颜色”部分。边框颜色的默认值为“黑色”。
· 扩展- 选择文本的扩展方式。可以是 none、strftime(已弃用)或 normal(默认)。有关详细信息,请参阅下面的文本扩展部分。
· basetime – 设置计数的开始时间。值以微秒为单位。仅适用于已弃用的 strftime 扩展模式。要在正常扩展模式下进行模拟,请使用 pts 函数,提供开始时间(以秒为单位)作为第二个参数。
· fix_bounds - 如果为 true,检查并修复文本坐标以避免剪切。
· fontcolor - 用于绘制字体的颜色。有关此选项的语法,请查看 ffmpeg-utils 手册中的“颜色”部分。fontcolor 的默认值为“黑色”。
· fontcolor_expr – 与文本相同的扩展字符串以获得动态字体颜色值。默认情况下,此选项具有空值并且不被处理。设置此选项时,它会覆盖 fontcolor 选项。
· font - 用于绘制文本的字体系列。默认情况下无。
· fontfile – 用于绘制文本的字体文件。必须包含路径。如果禁用了 fontconfig 支持,则此参数是必需的。
· alpha – 绘制应用 alpha 混合的文本。该值可以是介于 0.0 和 1.0 之间的数字。该表达式也接受相同的变量 x、y。默认值为 1。请参阅 fontcolor_expr。
· fontsize – 用于绘制文本的字体大小。字体大小的默认值为 16。
· text_shaping – 如果设置为 1,则在绘制文本之前尝试对文本进行整形(例如,反转从右到左文本的顺序并加入阿拉伯字符)。否则,只需按照给定的方式绘制文本。默认为 1(如果支持)。
· ft_load_flags –用于加载字体的标志。这些标志映射了 libfreetype 支持的相应标志,并且是以下值的组合:
默认值为“默认”。有关更多信息,请参阅 FT_LOAD_* libfreetype 标志的文档。
· shadowcolor – 用于在已绘制文本后面绘制阴影的颜色。有关此选项的语法,请查看 ffmpeg-utils 手册中的“颜色”部分。shadowcolor 的默认值为“黑色”。
· shadowx – 文本阴影位置相对于文本位置的 x 偏移量。它可以是正值或负值。默认值为“0”。
· shadowy – 文本阴影位置相对于文本位置的 y 偏移量。它可以是正值或负值。默认值为“0”。
· start_number – n/frame_num 变量的起始帧号。默认值为“0”。
· tabsize - 用于呈现选项卡的空格数大小。默认值为 4。
· timecode – 以“hh:mm:ss[:;.]ff”格式设置初始时间码表示。它可以带或不带文本参数使用。必须指定 timecode_rate 选项。
· rate – 设置时间码帧率(仅限时间码)。
· timecode_rate – 的别名rate。
· r – 的别名rate。
· tc24hmax – 如果设置为 1,时间码选项的输出将在 24 小时左右回绕。默认值为 0(禁用)。
· text -- 要绘制的文本字符串。文本必须是 UTF-8 编码字符序列。如果没有使用参数 textfile 指定文件,则此参数是必需的。
· textfile – 包含要绘制的文本的文本文件。文本必须是 UTF-8 编码字符序列。如果没有使用参数 text 指定文本字符串,则此参数是必需的。如果同时指定了 text 和 textfile,则会引发错误。
· reload – 如果设置为 1,文本文件将在每一帧之前重新加载。一定要自动更新它,否则它可能会被部分读取,甚至失败。
· x – 指定将在视频帧内绘制文本的偏移量的表达式。它相对于输出图像的左边框。默认值为“0”。
· y - 指定将在视频帧内绘制文本的偏移量的表达式。它相对于输出图像的上边框。默认值为“0”。有关接受的常量和函数的列表,请参见下文。
表达式常量:
x 和 y 的参数是包含以下常量和函数的表达式:
· dar:输入显示纵横比,同 (w / h) * sar
· hsub:水平色度子样本值。例如,对于像素格式“yuv422p”,hsub 为 2,vsub 为 1。
· vsub:垂直色度子样本值。例如,对于像素格式“yuv422p”,hsub 为 2,vsub 为 1。
· line_h:每个文本行的高度
· lh:别名为line_h.
· main_h:输入高度
· h: 的别名main_h。
· H: 的别名main_h。
· main_w:输入宽度
· w: 的别名main_w。
· W: 的别名main_w。
· ascent:对于所有渲染的字形,从基线到用于放置字形轮廓点的最高/上网格坐标的最大距离。这是一个正值,因为网格的 Y 轴向上。
· max_glyph_a: 的别名ascent。
· 下降:对于所有渲染的字形,从基线到用于放置字形轮廓点的最低网格坐标的最大距离。由于网格的方向,这是一个负值,Y 轴向上。
· max_glyph_d: 的别名descent。
· max_glyph_h:最大字形高度,即渲染文本中包含的所有字形的最大高度,相当于上升-下降。
· max_glyph_w:最大字形宽度,即渲染文本中包含的所有字形的最大宽度。
· n:输入帧数,从0开始
· rand(min, max):返回一个包含在 min 和 max 之间的随机数
· sar:输入样本纵横比。
· t:时间戳,以秒为单位,如果输入时间戳未知,则为 NAN
· text_h:渲染文本的高度
· th: 的别名text_h。
· text_w:渲染文本的宽度
· tw: 的别名text_w。
· x:绘制文本的 x 偏移坐标。
· y:绘制文本的 y 偏移坐标。
这些参数允许 x 和 y 表达式相互引用,因此您可以例如指定 y=x/dar.
应用自定义过滤器。
filter通常由更高级别的过滤器函数使用,例如 hflip ,但如果缺少过滤器实现 ffmpeg-python ,您可以 filter 直接调用以 ffmpeg-python 将过滤器名称和参数逐字传递给 ffmpeg 。
参数
函数名称后缀_是为了避免与标准 pythonfilter 函数混淆。
例子
替代名称 filter ,以免与内置的 pythonfilter 运算符冲突。
应用具有一个或多个输出的自定义过滤器。
这 filter 与过滤器可以产生多个输出相同。
要引用输出流,请使用 .stream 运算符或括号简写:
例子
水平翻转输入视频。
修改输入的色调和/或饱和度。
参数
将一个视频叠加在另一个视频之上。
参数
更改输入帧的 PTS(表示时间戳)。
FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。
参数
修剪输入,使输出包含输入的一个连续子部分。
参数
垂直翻转输入视频。
应用缩放和平移效果。
参数
python 怎么把多个视频拼接
用视频剪辑软件拼接就好了
方法如下:
1、打开 爱剪辑 ,导入需要拼接的视频
2、利用创新式时间轴和超级剪刀手裁剪好视频后,点击导出视频按钮即可
Python视频教程,百度云
[python视频教程] lets python视频教程免费下载
链接:
提取码:dxpn
[python视频教程] lets python 视频教程|Lets-python-017-文件和输入输出01.avi|Lets-python-016-条件和循环02-练习题和生成器.avi|Lets-python-015-条件和循环01.avi|Lets-python-014-映射和集合02.avi|Lets-python-013-映射和集合01.avi|Lets-python-012-序列04-02.
Python之OpenCV把一个视频切分成多个等长视频
import cv2
cap = cv2.VideoCapture('E:/极乐净土.mp4')#导入路径
j=1
i=1
fourcc = cv2.VideoWriter_fourcc(*'XVID')
fps =cap.get(cv2.CAP_PROP_FPS)
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
out = cv2.VideoWriter('E:/新建文件夹 (3)/' + str(j) + '.avi', fourcc,fps, size)#输出路径都是可以自己改的
while (True):
ret, frame = cap.read() # 捕获一帧图像
i = i + 1
out.write(frame) # 保存帧
if (i % 200== 0): # 每n帧切割为一个新的视频
j = j + 1
out = cv2.VideoWriter('E:/新建文件夹 (3)/' + str(j) + '.avi', fourcc, fps, size)#路径都是可以自己改的
cv2.imshow('frame', frame) # 显示帧
# 判断按键,如果按键为q,退出循环
if cv2.waitKey(25) 0xFF == ord('q'):
break
cap.release()
out.release()
cv2.destroyAllWindows()