gpt4 book ai didi

python-3.x - ffmpeg-python 从 x11grab 获取输入

转载 作者:行者123 更新时间:2023-12-04 22:57:01 29 4
gpt4 key购买 nike

我正在使用 FFmpeg-python 绑定(bind)来使用 FFmpeg。我必须从 x11grab 获取输入,为此我已经在 shell 中有一个等效的命令,即ffmpeg -nostdin -hide_banner -nostats -loglevel panic -video_size 1920x1080 -r 60 -framerate 30 -f x11grab -i :1 -f alsa -ac 2 -i pulse -preset fast -pix_fmt yuv420p file.mkv &我已经浏览了 FFmpeg-Python 的文档来创建等效命令,但是,我在文档中找不到任何 x11grab 示例。
我想使用绑定(bind)使代码更具可读性,该命令适用于 subprocess.call()/os.system()

最佳答案

语法类似于以下代码示例:

import ffmpeg

(
ffmpeg
.output(ffmpeg.input(':0', s='192x128', r=30, f='x11grab'),
ffmpeg.input('sine=frequency=500', f='lavfi'),
'file.mkv',
vcodec='libx264', acodec='aac', preset='fast', pix_fmt='yuv420p', t=5)
.global_args('-nostdin', '-hide_banner', '-nostats')
.overwrite_output()
.run()
)

笔记:
  • 我的 Ubuntu 18.04 虚拟机不接受 1920x1080 分辨率,也不接受音频输入设备(我将其替换为合成音频)。
  • 您可能可以替换 ffmpeg.input('sine=frequency=500', f='lavfi')和:ffmpeg.input('pulse', f='alsa', ac=2) ,但我无法测试它...
  • 该示例选择视频和音频编解码器:vcodec='libx264', acodec='aac' (选择编解码器是一个好习惯)。
  • 该示例使用 t=5仅录制 5 秒。
  • .overwrite_output()用于在不询问的情况下覆盖输出。

  • 抓取样本:
    enter image description here

    关于python-3.x - ffmpeg-python 从 x11grab 获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70145683/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com