在Raspberry PI上用Python执行FFmpeg命令

2024-09-28 22:11:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我用FFmpeg在我的树莓皮上录制视频。代码在这里:

ffmpeg -f video4linux2 -y -r 4 -i /dev/video0 -vf "drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf:expansion=strftime:text='%Y-%m-%d %H\\:%M\\:%S': fontcolor=white:box=1:boxcolor=black@0.8:x=w-text_w:y=h-line_h" -vframes 20 -vcodec mpeg4 out.mp4 

我在终端运行了这个代码,它运行得很好。但是我需要使用Python来运行它。然后我写了以下代码:

^{pr2}$

工作时间绝对短于1s。有什么问题吗?在


Tags: 代码textdevshare视频usrttfffmpeg
1条回答
网友
1楼 · 发布于 2024-09-28 22:11:28

我想我明白了。看起来你对bash空白有问题。在命令行中,您将整个-vf选项括在引号中。在python脚本中,您将x创建为字符串;Popen将像列表中的其他参数一样解释该字符串,并最终在实际的命令运行中不加引号。在命令行上,这看起来像:

ffmpeg -f video4linux2 -y -r 4 -i /dev/video0 -vf drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf:expansion=strftime:text='%Y-%m-%d %H\\:%M\\:%S': fontcolor=white:box=1:boxcolor=black@0.8:x=w-text_w:y=h-line_h -vframes 20 -vcodec mpeg4 out.mp4

实际上,你需要:

^{pr2}$

否则,当bash实际运行时,该参数将以日期格式在空白处拆分,并导致一些意外行为。在

(抱歉,这是一堵墙,我只是想确保我不会混淆。)

相关问题 更多 >