ffmpeg通过管道拉取,10秒延时问题

目前需要有个需求,
ffmpeg一个命令先处理两个画面合并成一个,然后传入到管道,
然后另一个ffmpeg命令从管道中拉取推送到rtmp。
第一条命令直接推送rtmp没有问题。
但是通过管道拉取,我查看日志发现,第二条命令大概在10秒后才会开始推送。导致线上拉取的直播有10秒以上的延时。
感觉像是需要拉到10秒的数据才会去推,是和I帧或者缓冲区有关吗。
目前通过-fflags nobuffer暂时能解决,但是第二条命令还是需要10秒后才会推,但是直接是推的10秒后的数据。

求大神解释一下是什么情况

ffmpeg -re -i unix:./1.sock -re -i unix:./2.sock -filter_complex [0:v]scale=w=1280:h=720[scale0];[scale0]pad=w=1280:h=720:x=0:y=0:color=black[out0];[1:v]scale=w=256:h=144[scale1];[out0][scale1]overlay=x=1024:y=576[out1] -map [out1] -r 30 -vcodec libx264 -f flv -g 30 -bf 0 -tune zerolatency pipe:1
ffmpeg -f flv -r 30 -fflags nobuffer -i pipe:0 -acodec copy -vcodec copy -f flv -g 30 -bf 0 -tune zerolatency rtmp://**.com/**?auth_key=1601111160-33c4b61b7e91410e8234a85b5f892c90-0-e2aa796976c7739ce9a4ab86546b86e1
阅读 4.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进