FFMPEG Streaming 循环更新图像到 FB Live Video
FFMPEG Streaming updated image in loop to FB Live Video
我正在尝试使用此命令将图像流式传输到 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 了解不多,我试图搜索这个问题,但都是徒劳的。
我终于找到了解决办法。当我使用我的 rails 应用程序直接覆盖“input.jpg”文件时,这个过程需要几毫秒,但在此期间,ffmpeg 正在流式传输此文件,该文件在几毫秒内不完整。
所以,这个问题的解决方案是首先将更新后的图像写入临时文件,如“input.tmp.img”,然后使用脚本或终端等将此文件移动到原始文件
mv input.tmp.img input.jpg
由于移动过程几乎不需要任何时间,这为我解决了问题。
我正在尝试使用此命令将图像流式传输到 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 了解不多,我试图搜索这个问题,但都是徒劳的。
我终于找到了解决办法。当我使用我的 rails 应用程序直接覆盖“input.jpg”文件时,这个过程需要几毫秒,但在此期间,ffmpeg 正在流式传输此文件,该文件在几毫秒内不完整。
所以,这个问题的解决方案是首先将更新后的图像写入临时文件,如“input.tmp.img”,然后使用脚本或终端等将此文件移动到原始文件
mv input.tmp.img input.jpg
由于移动过程几乎不需要任何时间,这为我解决了问题。