【问题标题】:FFMPEG Streaming updated image in loop to FB Live VideoFFMPEG Streaming 循环更新图像到 FB Live Video
【发布时间】:2017-05-03 16:30:02
【问题描述】:

我正在尝试使用此命令将图像流式传输到 fb 实时视频:

ffmpeg -loop 1 -re -i "input.jpg" -pix_fmt yuv420p -profile:v baseline -s 720x480 -bufsize 6000k -vb 400k -maxrate 1500k -deinterlace -t 60 -vcodec libx264 -preset veryfast -g 30 -r 30 -f flv "rtmp_link"

此命令完美适用于单个输入文件。但问题是我希望 ffmpeg 流式传输“input.jpg”文件的最新和更新版本,因为我的应用程序每 2-3 秒更新一次此“input.jpg”,但流式传输的图像是旧版本,不是更新的。

如果我尝试重新启动此循环,则流式传输会停止大约。 4-5 秒,足以让 FB 直播视频认为流媒体已停止,然后结束直播视频。

那么,是否可以在此循环中使用最新可用版本的输入文件进行流式传输?我对FFMPEG不太了解,我试图搜索这个问题,但都是徒劳的。

【问题讨论】:

  • 尝试回答here
  • @Mulvya 这对我不起作用。

标签: facebook video ffmpeg rtmp live-streaming


【解决方案1】:

我终于找到了解决方案。当我使用我的 Rails 应用程序直接覆盖“input.jpg”文件时,这个过程需要几毫秒,但在此期间,ffmpeg 正在流式传输此文件,该文件在几毫秒内不完整。

因此,这个问题的解决方案是首先将更新的图像写入临时文件,如“input.tmp.img”,然后使用脚本或使用终端等将该文件移动到原始文件 mv input.tmp.img input.jpg 由于移动过程几乎不需要任何时间,这为我解决了问题。

【讨论】:

  • 可能是最简单的解决方案。 mv原子地完成它的工作:其他进程只会看到旧文件或新文件,而不是部分文件。
  • 谢谢,有没有办法在直播视频输入上添加动态图像叠加?意味着我们可以在视频流开始后继续更改图像叠加层?
猜你喜欢
  • 2015-01-29
  • 2012-09-09
  • 2010-11-08
  • 2021-03-10
  • 2017-10-31
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多