首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ffmpeg-python从x11grab获取输入。

ffmpeg-python从x11grab获取输入。
EN

Stack Overflow用户
提问于 2021-11-28 17:08:53
回答 1查看 343关注 0票数 1

我使用FFmpeg-python绑定来使用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的例子。

我想使用绑定来提高代码的可读性,该命令可以使用subprocess.call() / os.system()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-28 20:07:43

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

代码语言:javascript
复制
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()
)

备注:

  • MyUbuntu18.04虚拟机不接受1920x1080分辨率,也不接受音频输入设备(我用合成音频替换了它)。
  • 您可能可以用以下方式替换ffmpeg.input('sine=frequency=500', f='lavfi')

practice).

  • The,但是我不能测试它. seconds.

  • .overwrite_output()

  • 示例选择视频和音频编解码器:vcodec='libx264', acodec='aac' (选择编解码器是一个很好的ffmpeg.input('pulse', f='alsa', ac=2)示例,使用t=5只记录5 seconds.

  • .overwrite_output()用于覆盖输出,而无需询问。

)

抓取的样本:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70145683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档