继之前一篇科普文《如何使用RTSP推流组件EasyPusher将MP4文件推到EasyDarwin开源平台》发布后,有开发者提出疑问:假如需要显示视频直播时间,如何在推送的时候可以自定义在视频上叠加时间水印?
这个问题就涉及到了FFMPEG编码过程,具体内容可以通过《FFMPEG编码过程说明》一文了解,根据FFMPEG编码,我们来尝试实现上面的需求。
利用FFMPEG,结合命令: ffmpeg -re -stream_loop -1 -i test.mp4 -vf drawtext=“fontfile=arial.ttc:x=w-tw-20:y=30:fontcolor=white:fontsize=11:text=‘2020-10-10 %{localtime:%H:%M:%S}’” -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://172.81.216.155:554/test.sdp
此命令解释,循环把test.mp4读出来以RTSP协议方式推送到172.81.216.155:554,在视频右上角添加一个白色的OSD,内容为2020-10-10 系统时间
text:要添加的文字内容 fontsize:字体大小 fontcolor:字体颜色
下面我们从EasyDarwin拉取这个推上去的流下来看下播放状态下的效果:
下面看下VLC播放的效果:
时间已经展示完毕,此外,我们也可以根据命令参数选择叠加的内容和位置,自由修改。
EasyDarwin开源平台提供的开源项目,拥有完整的源代码,帮助开发者更快更简单实现流媒体音视频产品功能,实现移动互联网流媒体直播点播。大家如果对EasyDarwin开源项目感兴趣,欢迎联系我们。