gpt4 book ai didi

python - 使用 ffmpeg-python 库捕获网络摄像头

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

您好我正在尝试使用 ffmpeg-python 包装库 (https://github.com/kkroening/ffmpeg-python) 使用 python 捕获网络摄像头流
我有一个有效的 ffmpeg 命令,它是:

ffmpeg -f v4l2 -video_size 352x288 -i /dev/video0 -vf "drawtext='fontfile=fonts/FreeSerif.ttf: text=%{pts} : \
x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1'" -an -y -t 15 videotests/out_localtime8.mp4

这会以 352x288 的分辨率捕获 15 秒的视频,并在视频的底部中心写入时间戳。

为了使用 ffmpeg-python 库,我只是试图让 drawtext 过滤器工作,这是我的脚本:
#!/usr/bin/env python

import ffmpeg
stream = ffmpeg.input('videotests/example.mov')
stream = ffmpeg.filter_(stream,'drawtext',("fontfile=fonts/FreeSerif.ttf:text=%{pts}"))
stream = ffmpeg.output(stream, 'videotests/output4.mp4')
ffmpeg.run(stream)

错误是
[Parsed_drawtext_0 @ 0x561f59d494e0] Either text, a valid file or a timecode must be provided
[AVFilterGraph @ 0x561f59d39080] Error initializing filter 'drawtext' with args 'fontfile\\\=fonts/FreeSerif.ttf\\\:text\\\=%{pts}'
Error initializing complex filters.
Invalid argument

以上似乎至少达到了 ffmpeg 但参数的格式不正确,如何更正它们?

或者,当我尝试将参数拆分为只传递其中一个时,我得到一个不同的错误,如下所示:
stream = ffmpeg.filter_(stream,'drawtext',('text=%{pts}'))

错误是
subprocess.CalledProcessError: Command '['ffmpeg', '-i', 'videotests/example.mov', '-filter_complex', "[0]drawtext=(\\\\\\\\\\\\\\'text\\\\\\\\\\\\=%{pts}\\\\\\\\\\\\\\'\\,)[s0]", '-map', '[s0]', 'videotests/output4.mp4']' returned non-zero exit status 1.

怎么会有这么多反斜杠?请就如何进行的任何建议。

谢谢

最佳答案

我最终制定了正确的语法。这是一个工作示例

#!/usr/bin/env python

import ffmpeg
stream = ffmpeg.input('videotests/example.mov')
stream = ffmpeg.filter_(stream,'drawtext',fontfile="fonts/hack/Hack-Regular.ttf",text="%{pts}",box='1', boxcolor='0x00000000@1', fontcolor='white')
stream = ffmpeg.output(stream, 'videotests/output6.mp4')
ffmpeg.run(stream)

语法是
ffmpeg.filter_(<video stream name>,'<filter name>',filter_parameter_name='value',<filter_parameter_name>=value)

必要时为 filter_parameter_name 值使用引号。

希望这可以帮助某人。

关于python - 使用 ffmpeg-python 库捕获网络摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48123899/

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