嗨,我正在尝试使用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.
怎么会有这么多的反斜杠?有关如何进行的任何建议请。
谢谢