2017-10-13 46 views
0

我试图改变文字在我的直播视频流 这种动态每隔5分钟用参数IM:借鉴视频流动态文本

-vf "drawtext=fontsize=40:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2" 

我尝试“C”在FFmpeg控制台窗口但我不能正确的解决,我总是得到一个解析错误。 有没有一个如何使用这个选项的例子?

谢谢。

+0

您必须使用'textfile ='/ path/to/file':reload = 1'来代替'text =''' – Mulvya

+0

@Mulvya如何从文件读取?多久它会重新加载? –

回答

1

执行重新加载,您还需要以原子方式写入文件。首先将文本更新为临时文件,然后重命名它。如果没有,在某些时候,FFMpeg将读取空数据,并在创建文件并且没有文本被写入时失败。

  • 用接下来的5分钟的文本创建livetext.txt.tmp。
  • 将livetext.txt.tmp重命名为livetext.txt。

每5分钟重复一次该过程。

-vf "drawtext=fontsize=40:fontfile=FreeSerif.ttf:textfile=/path/livetext.txt:x=(w-text_w)/2:y=(h-text_h)/2:reload=1" 

随着重装ffmpeg的读取每一帧的文字,所以更新的速度几乎瞬间。有关详细信息,请参阅Drawtext filter

+0

感谢您的回答!有没有一种方法可以用流拷贝来绘制文本? –

+0

这是一个很大的NO。如果你使用过滤器,你不能使用streamcopy。 – Rens